码迷,mamicode.com
首页 > 其他好文 > 详细

Redis入门到精通(六)——sorted_set基本操作、sorted_set扩展操作(实现排行榜功能)、sorted_set注意事项、sorted_set应用场景(定时任务执行顺序、消息任务的权重设定)

时间:2020-05-11 13:44:28      阅读:76      评论:0      收藏:0      [点我收藏+]

标签:排名   解决   mic   组合排序   过期   数据操作   set   class   lis   

sorted_set类型结构:在set类型的基础上进行排序

技术图片

 

 

一、sorted_set类型数据的基本操作

添加数据
zadd key score1 member1 [score2 member2]

获取全部数据
zrange key start stop [withscores]         #如果不写withscores就只会显示member,默认是升序排名
zrevrange key start stop [withscores]    #降序排名

删除数据
zrem key member [member]

技术图片

 

 

 

按条件获取数据
zrangebyscore key min max [withscores] [limit]   #min和max是填写score的值,表示范围,limit是限制显示几条,带索引
zrevrangebyscore key max min [withscores]

条件删除数据
zremrangebyrank key start stop      #按索引删除
zremrangebyscore key min max     #按score值删除
注意:
1.min和max用于限定搜索查询的条件
2.start和stop用于限定查询范围,作用于索引,表示开始和结束索引
3.limit的offset和count用于限定查询范围,作用于查询结果,表示开始位置和数据总量

 

获取集合数据总数
zcard key    
zcount key min max     #查询范围内数据量有多少

集合交、并操作
zinterstore destination numkeys key      #numkeys是key的个数,把共同存在的key值相加
zunionstore destination numkeys key      

技术图片

 

 

二、sorted_set类型数据的扩展操作

业务场景:实现排行榜,排名就是索引位置,redis应用于计数器组合排序功能对应的排名

获取数据对应的索引(排名)
zrank key member             #获得的索引是从0开始的
zrevrank key member

score值获取与修改
zscore key member        #获取对应的score值
zincrby key increment member     #修对应的score值,increment是修改的数字

技术图片

 

 

三、sorted_set类型数据操作的注意事项

注意事项

技术图片

 

四、sorted_set类型应用场景

1.业务场景:开通vip管理过期信息,redis应用于定时任务执行顺序管理或任务过期管理

技术图片

 

解决方案

技术图片

 

注意:不能把所有的信息都加入到一个sorted_set中,可以分别加入1小时内、1天内的、1周内的、1月内的等等处理队列中

2.业务场景:任务/消息权重设定应用

处理任务队列或消息队列时,采用list类型数据来处理。对于高优先级的任务要保障对其优先处理,实现任务权重管理,就要使用到sorted_set来处理

解决方案:

对于带有权重的任务,优先处理权重高的任务,采用score记录权重即可。

技术图片

 

Redis入门到精通(六)——sorted_set基本操作、sorted_set扩展操作(实现排行榜功能)、sorted_set注意事项、sorted_set应用场景(定时任务执行顺序、消息任务的权重设定)

标签:排名   解决   mic   组合排序   过期   数据操作   set   class   lis   

原文地址:https://www.cnblogs.com/wangcuican/p/12868167.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!