IT评测·应用市场-qidao123.com技术社区

标题: Redis 有序聚集(Sorted Set) [打印本页]

作者: 鼠扑    时间: 4 天前
标题: Redis 有序聚集(Sorted Set)
Redis 有序聚集(Sorted Set)

以下从基础下令内部编码使用场景三个维度对 Redis 有序聚集举行具体剖析:

一、基础下令

下令时间复杂度下令含义zadd key score member [score member …]                                                  O                                  (                                  k                                  ×                                  l                                  o                                  g                                  (                                  n                                  )                                  )                                          O(k×log(n))                           O(k×log(n)),k是添加成员的个数,n是当前有序聚集成员个数向有序聚集(Sorted Set)中添加一个或多个成员,同时为每个成员关联一个分数(score),根据分数对成员举行排序 。zcard keyO(1)获取有序聚会合成员的数量 。zscore key memberO(1)获取有序聚会合指定成员的分数 。zrank key memberO(log(n)),n是当前有序聚集成员个数获取有序聚会合指定成员的排名(从0开始,按分数从小到大排序) 。zrevrank key memberO(log(n)),n是当前有序聚集成员个数获取有序聚会合指定成员的排名(从0开始,按分数从大到小排序) 。zrem key member [member …]O(k*log(n)),k是删除成员的个数,n是当前有序聚集成员个数从有序聚会合删除一个或多个成员 。zincrby key increment memberO(log(n)),n是当前有序聚集成员个数为有序聚会合指定成员的分数加上指定的增量 。zrange key start end [withscores]O(log(n)+k),k是要获取的成员个数,n是当前有序聚集成员个数按照分数从小到大的顺序,获取有序聚会合指定区间内的成员,可选择是否返回成员的分数 。zrevrange key start end [withscores]O(log(n)+k),k是要获取的成员个数,n是当前有序聚集成员个数按照分数从大到小的顺序,获取有序聚会合指定区间内的成员,可选择是否返回成员的分数 。zrangebyscore key min max [withscores] [limit offset count]O(log(n)+k),k是要获取的成员个数,n是当前有序聚集成员个数按照分数范围,获取有序聚会合分数在指定区间内的成员,可选择是否返回成员的分数,还可通过limit指定返回结果的偏移量和数量 。zrevrangebyscore key max min [withscores] [limit offset count]O(log(n)+k),k是要获取的成员个数,n是当前有序聚集成员个数按照分数范围,从大到小获取有序聚会合分数在指定区间内的成员,可选择是否返回成员的分数,还可通过limit指定返回结果的偏移量和数量 。zcount key min maxO(log(n)),n是当前有序聚集成员个数计算有序聚会合分数在指定区间内的成员数量 。zremrangebyrank key start endO(log(n)+k),k是要删除的成员个数,n是当前有序聚集成员个数根据成员排名范围,从有序聚会合删除指定区间内的成员 。zremrangebyscore key min maxO(log(n)+k),k是要删除的成员个数,n是当前有序聚集成员个数根据分数范围,从有序聚会合删除分数在指定区间内的成员 。 有序聚集的核心下令围绕元素分数(score)的增删查改、排序和聚集运算睁开,主要分为以下几类:
1. 元素操作


2. 范围查询与排序


3. 聚集运算


4. 统计与删除


5. 壅闭操作



二、内部编码

Redis 根据数据规模动态选择编码方式,以平衡内存和性能:
1. ziplist(压缩列表)


2. skiplist(跳表)


3. 编码转换规则



三、使用场景

有序聚集凭借唯一性有序性,适用于以下典范场景:
1. 排行榜系统


2. 优先级队列


3. 时间轴/变乱排序


4. 动态统计与过滤


5. 数据去重与聚合



四、调优发起




免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 IT评测·应用市场-qidao123.com技术社区 (https://dis.qidao123.com/) Powered by Discuz! X3.4