范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

redis常用数据结构介绍和业务应用场景分析

  redis数据结构
  redis内置了很多常用数据结构,了解这些数据结构的功能和应用场景能够让我们在需求开发时灵活运用来解决实际问题。 Strings字符串、数字
  String是redis中最基础的数据结构,你可以把它用作缓存最基础的kv(key-value)类型的缓存(value最大为512MB),只需要把需要缓存的对象进行string的编解码即可。另外String也可以保存数值类型的数据,就可以来实现计数功能(redi提供了incr等原子操作)
  常见应用场景 计数器: 保存各种计数(比如视频播放数、点赞数、活动参与人数、剩余库存数、红包总金额) kv: key value类型的缓存数据,比如保存一篇文章的内容、保存一个用户的信息等等 分布式限流: 通过带有过期时间的计数器,每次请求减一判断是否大于等于0,能够实现一些分布式限流的功能,比如限制一分钟内接口请求数不超过1000,还可以实现一个用户一分钟内发布评论不超过N个的功能。 分布式锁: 通过string的setnx,可以实现简单的分布式锁,比如限制一个用户不要同时请求接口(避免接口处理过程中的用户维度并发操作导致数据错误)。(有人会提出质疑说网上的redis分布式锁有这样那样的问题,其实大部分需要分布式锁的场景都是比较简单的,要实现出一个完美的分布式解决方案,可能会比较重影响接口性能或者实现复杂) List
  List列表更多的时候是把它当成队列使用(最大2^32 - 1个元素),使用入队出队功能,如果来使用它作为各种列表的话,很多时候不具备防重功能在使用的时候不是很方便。
  常见应用场景 抢红包: 发红包、拆红包入队,抢红包则是出队 Set
  Set是一种无序不重复的集合,添加删除检查是否存在都是O(1)的时间复杂度。 Sorted Set
  Sorted Set是结合了List和Set的一种数据结构,有序(按照元素score排序)的不重复(元素key不重复)的集合,Sorted Set是在业务开发中非常常用的数据结构(比List和Set应用面更广),因为在实际需求中,存在非常多的列表场景,比如视频列表、评论列表、关注列表、点赞列表、排行榜等等各种列表,每个列表都要按照一定规则排序,并且大部分都不能重复,所以使用Sorted Set就非常合适。
  常见应用场景 排行榜等榜单: 排行用的分数作为score 列表分页: member存储列表元素的id(视频id、用户id等),元素的id(具备递增且唯一)作为score(如果量级比较小QPS很低用时间戳也可以不会有多少重复时间戳),使用zrevrangebyscore进行分页查询,使用zscore判断是否关注等。 Hash
  hash是一个map结构,可以像存储对象的多个字段一样存储一个key的多类数据。
  常见应用场景 保存一个对象的多个字段,比如一篇文章的作者、发布时间、标签等等信息作为一个hash上的多个字段保存。 PubSub
  redis中的pub/sub可以实现广播功能,类似rocketmq中的broadcast
  常见应用场景 websocket场景,server给client发送消息时,由于不知道client和那个server建立的链接,所以可以通过发送广播,让对应的server发送消息。 其他数据结构
  除了上述最基本的数据结构外,redis还提供了一些其他的数据结构,有的是需要安装相关redis stack来使用的。 bitmap
  bitmap本质上还是使用的string字符串,不过可以通过bit来进行操作,把这个key的value值想象成bit组成的数组。
  常见应用场景 记录多个是否的标记为: 比如记录一个用户是否是会员、是否是认证用户等等这类是否的标记,这些标记作为一个用户的一个bitmap上的不同index上的bit位,这样只需要请求一次就可以获取到一个用户的多种标记信息,并且存储上相对kv存储也比较节省资源。一个bitmap最多可以存储512MB的数据,一共有2^32个bit位,所以能够存储非常多的数据,比如签到场景可以存储一个用户某一天是否签到过。 bloomfilter
  bloomfilter(也叫布隆过滤器)可以理解成一种特殊的set集合,它可以用来判断一个值是否在这个集合中,不过不同于普通的set,它的判断存在一定误判的可能(假阳性),如果bloomfilter判断一个值不在这个集合中,那么一定不在,但是如果判断在,那么有可能不在。
  常见应用场景 减少请求量、缓存穿透量: 比如为了防止大量请求查询缓存不存在穿透到数据库中查询,我们可以在缓存查询前加一层布隆过滤器的查询,如果不在布隆过滤器中,说明数据肯定不在数据库和缓存中,就不需要继续查询了。 hyperloglog
  hyperloglog是一种概率性的去重计数数据结构,可以实现一定精度的去重计数
  常见应用场景 各类需要去重的计数,但是有不希望保存所有的记录数据: 文章阅读数、网站访客数等等 geohash
  geohash可以实现距离计算、距离查询等地理位置相关的功能
  常见应用场景 距离判断、附近的人

大家觉得彩票开奖500万,1000万的大奖得主都是真实的吗?公证员都信誓旦旦地说本次开奖,符合规则!有效!大笑彩票机构归属国家民政部门,它没必要作假,百万千万,乃至上亿的大奖,都在公正监督下产生,可以说是真实的。天天说彩票中奖是在主任的控制手机下载无损音乐通过耳机输出端输入到音响播放,效果为何那么差?最简单的原因是手机耳机端口输出电平太低,也可以说是手机耳机输出功率太小。用电脑或者CD机连接惠威M200MKII有源音箱,音量旋钮处于一半至三点钟位置,在十多平方米的范围内,就可以平价蓝牙耳机什么牌子好?老烧分享性价比高的蓝牙耳机推荐蓝牙耳机的便捷性让它迅速席卷市场,成为最热门的数码产品,但是很多朋友并不了解蓝牙耳机,有些还被坑过。不少朋友就问我平价蓝牙耳机什么牌子好?赵群作为发烧友对玩过diy,也买过很多蓝牙开学季,2021平价蓝牙耳机推荐告诉大家一个恐怖的故事,还有一个多星期就开学了!狗头新的学期即将到来,有些朋友要迎来快乐的大学时光,而有些朋友则要迎来即使毕业了也还会做噩梦的高三生活,不管是哪一种,这些都是人生路好音质带着走,TeufelRocksterGo便携蓝牙音箱测评现在不少人习惯使用智能手机听音乐或观看电影,然而受限于手机内置扬声器的性能,音质及音量都得有所妥协。此时如果拥有体积轻巧便于随身携带的喇叭,便能轻松提升聆听的品质,无论是户外活动营佩戴舒服的头戴蓝牙耳机有哪些?这几款头戴耳机很不错,可以康康这个科技盛行的时代,人们的生活水平在不断提高。现在为了更好的享受生活,我们也从有线耳机转换到了对蓝牙耳机的需求,从而到头戴式蓝牙耳机的需求。喜欢在闲暇时候玩游戏的小伙伴,或者是喜欢2500元只能选择iPhoneXR?其实这款iPhone的性价比也非常高2500买什么手机?可以买全新机,可以买二手机!每个人的想法都不同,即便是同样的价格,买的手机也都不一样。今天这位网友,就花了2500元买了一台全原装iPhoneXS,成色极品,价有多少人放弃移动而选择联通电信?我是一位陕西西安的移动老用户,从2002年,我就一直使用移动,至今已经近15年了,就是因为信号好才选择的,15年里,话费乱扣,很难退回,欠费一分钱就会停机,从来没有享受过移动的任何大家觉得中国移动的宽带怎么样?说实话,用用移动的电话卡还可以,宽带就算了吧服务效率太差,去年办的移动宽带,用了一个星期维护三天,一个月出问题的时间比不出问题的时间还要长,平常出门回家连个无限要等几分钟才能连上。华为手机对比同等手机的价位贵你啥看法?感谢邀请华为手机对比同等手机的价位贵你啥看法?题主问题的核心是华为手机对比同等手机的价位贵你有啥看法?这句话说的人很多,而且我也有人听过说过无数次了,但是说实话每个人购买手机的初衷Win10的64位专业版系统,开机一阵子就卡屏死机,怎么解决?首先要排除一下,是否硬件问题引起,没说你的具体硬件配置及使用年限,也没说开机都加载了哪些应用程序和外围硬件。换稍低版本比较稳定的系统,撤掉一切非必要的软硬件加载,进行最小化系统测试
从信用管理角度识别高价值客户道消费信贷信用风险评估的理论差异KMV模型很好的诠释了公司信用评估的核心思想,那就是确认安全边际理论。安全边际这个名词来自价值投资领域,即投资品的市场价格和其真实价值之间的差额,差联合迭代器与生成器,这个内置函数真香来源Python猫作者豌豆花下猫花下猫语Python中很多内置函数的作用都非常大,比如说enumerate()和zip(),它们使得我们在作迭代操作时极为顺手。这是一篇很多年前的P聊聊PC端自动化最佳方案Pywinauto来源AirPython作者星安果1。前言大家好,我是安果!有小伙伴给我留言,说pywinauto作为WinAppDriver的替代方案,也能完美完成PC端的自动化2。介绍Pywin企业数字化转型需要什么样的人才?数字化数字化转型(Digitaltransformation)是建立在数字化转换数字化升级基础上,进一步触及公司核心业务,以新建一种商业模式为目标的高层次转型。数字化转型是开发数字抢人大战来了,有大行秋招过万人,部分岗位门槛高,这类人才受宠招聘季金九银十来临,银行秋招如火如荼进行。中证君梳理发现,部分国有大行秋招人数过万,股份行政策行等招聘也陆续开启。科技类岗位倍受重视,部分岗位对学历及专业要求较高。业内人士称,这与手把手教你使用scrapy框架来爬取北京新发地价格行情(理论篇)来源Python爬虫与数据挖掘作者霖hero大家好!我是霖hero。上个月的时候,我写了一篇关于IP代理的文章,手把手教你使用XPath爬取免费代理IP,今天在这里分享我的第二篇文预测类模型做的越准越好吗?这篇文章力图回答三个建模中比较关心问题1如何控制模型的复杂度2如何构建建模要预测的指标(Y)3寻找什么样的特征作为解释变量。有监督模型分为预测类和解析类两种模型。前者多用于商业预测太敢拍了!20万条弹幕告诉你,扫黑风暴为何能掀起收视热潮?CDA数据分析师出品作者Mika数据曹鑫2021年暑期档热度最高最出圈的电视剧莫过于扫黑风暴了。这部扫黑题材的电视剧扫黑风暴一开播就火了。开播仅六小时播放量就过亿,截止到目前为止,神器Spider!几分钟入门分布式爬虫作者闲欢来源Python技术在上一篇文章神器!五分钟完成大型爬虫项目!,我们介绍了一个类似于Scrapy的开源爬虫框架feapder,并着重介绍了该框架的一种应用AirSpider彭水新嶺域儿童剧白雪公主精彩落幕12月23日,建工地产携手重庆市话剧院为孩子们带来的儿童话剧白雪公主,在下街民族会场上演。据悉,本场话剧是建工彭水新嶺域儿童剧活动的第二剧目,不少观众都是在看完第一剧目三只小猪后再在智能早教机器人排行榜中,阿尔法蛋伶俐猪是孩子学习好帮手所谓3岁看大,7岁看老,在孩子小的时候,家长一定要注意亲子互动,培养孩子的学习能力。有的小孩从小就聪明优秀,难道是天生的吗?答案当然是否定的,听听一个妈妈怎么说吧,从出生我就给她听