首页 > 其他 > 详细

SortedSet有序集合

时间:2021-09-24 17:08:21      阅读:19      评论:0      收藏:0      [点我收藏+]

基本介绍

类似Set集合
有序的、去重的
元素是字符串类型
每一个元素都关联着一个浮点数分值(Score),并按照分值从小到大的顺序排列集合中的元素。分值可以相同
最多包含2^32-1元素

使用
一个保存了水果价格的有序集合
技术分享图片

一个保存了员工薪水的有序集合

技术分享图片

一个有序集合,保存了正在阅读某些技术书的人数

技术分享图片

增加一个或多个元素

ZADD key score member [score member ...]

如果元素已经存在,则使用新的score

举例
ZADD fruits 3.2 香蕉
ZADD fruits 2.0 西瓜
ZADD fruits 4.0 番石榴 7.0 梨 6.8 芒果

技术分享图片

技术分享图片

技术分享图片

移除一个或者多个元素

ZREM key member [member ...]

元素不存在,自动忽略

举例
ZREM fruits 番石榴 梨 芒果
ZREM fruits 西瓜

技术分享图片

技术分享图片

技术分享图片
显示分值

ZSCORE key member
举例
ZSCORE fruits 芒果
ZSCORE fruits 西瓜

计算机并不能精确表达每一个浮点数,都是一种近似表达
技术分享图片

增加或者减少分值

ZINCRBY key increment member
increment为负数就是减少
举例
ZINCRBY fruits 1.5 西瓜
ZINCRBY fruits -0.8 香蕉

技术分享图片

返回元素的排名(索引)

ZRANK key member
举例
ZRANK fruits 西瓜
ZRANK fruits 番石榴
ZRANK fruits 芒果

技术分享图片
返回元素的逆序排名

ZREVRANK key member
举例
ZREVRANK fruits 西瓜
ZREVRANK fruits 番石榴
ZREVRANK fruits 芒果

技术分享图片
返回指定索引区间元素

ZRANGE key start stop [WITHSCORES]
如果score相同,则按照字典序lexicographical order 排列
默认按照score从小到大,如果需要score从大到小排列,使用ZREVRANGE
举例
ZRANGE fruits 0 2
ZRANGE fruits -5 -4

技术分享图片
返回指定索引区间元素

ZREVRANGE key start stop [WITHSCORES]
如果score相同,则按照字典序lexicographical order 的 逆序 排列
默认按照score从大到小,如果需要score从小到大排列,使用ZRANGE
举例
ZREVRANGE fruits 0 2
ZREVRANGE fruits -5 -4

技术分享图片
返回指定分值区间元素

ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT offset count]
返回score默认属于[min,max]之间,元素按照score升序排列,score相同字典序
LIMIT中offset代表跳过多少个元素,count是返回几个。类似于Mysql
使用小括号,修改区间为开区间,例如(5、(10、5)
-inf和+inf表示负无穷和正无穷
举例
ZRANGEBYSCORE fruits 4.0 7.0
ZRANGEBYSCORE fruits (4 7
ZRANGEBYSCORE fruits -inf +inf

技术分享图片
返回指定分值区间元素

ZREVRANGEBYSCORE key min max [WITHSCORES] [LIMIT offset count]
返回score默认属于[min,max]之间,元素按照score降序排列,score相同字典降序
LIMIT中offset代表跳过多少个元素,count是返回几个。类似于Mysql
使用小括号,修改区间为开区间,例如(5、(10、5)
-inf和+inf表示负无穷和正无穷
举例
ZREVRANGEBYSCORE fruits 7.0 4.0
ZRANGEBYSCORE fruits 7 (4
ZRANGEBYSCORE fruits +inf -inf

技术分享图片
移除指定排名范围的元素

ZREMRANGEBYRANK key start stop
举例
ZREMRANGEBYRANK fruits 0 2
ZRANGE fruits 0 -1

技术分享图片

技术分享图片
移除指定分值范围的元素

ZREMRANGEBYSCORE key min max
举例
ZREMRANGEBYSCORE fruits 3.0 5.0 
ZRANGE fruits 0 -1

技术分享图片
返回集合中元素个数

ZCARD key

返回指定范围中元素的个数

ZCOUNT key min max
ZCOUNT fruits 4 7

并集

ZUNIONSTORE destination numkeys key [key ...] [WEIGHTS weight] [AGGREGATE SUM|MIN|MAX]
numkeys指定key的数量,必须
WEIGHTS选项,与前面设定的key对应,对应key中每一个score都要乘以这个权重
AGGREGATE选项,指定并集结果的聚合方式
SUM:将所有集合中某一个元素的score值之和作为结果集中该成员的score值
MIN:将所有集合中某一个元素的score值中最小值作为结果集中该成员的score值
MAX:将所有集合中某一个元素的score值中最大值作为结果集中该成员的score值
举例
ZADD scores1 70 tom 80 peter 60 john
ZADD scores2 90 peter 60 ben
ZUNIONSTORE scores-all 2 scores1 scores2
ZUNIONSTORE scores-all1 2 scores1 scores2 AGGREGATE SUM
ZUNIONSTORE scores-all2 2 scores1 scores2 WEIGHTS 1 0.5 AGGREGATE SUM

交集

ZINTERSTORE destination numkeys key [key ...] [WEIGHTS weight] [AGGREGATE SUM|MIN|MAX]
numkeys指定key的数量,必须
WEIGHTS选项,与前面设定的key对应,对应key中每一个score都要乘以这个权重
AGGREGATE选项,指定并集结果的聚合方式
SUM:将所有集合中某一个元素的score值之和作为结果集中该成员的score值
MIN:将所有集合中某一个元素的score值中最小值作为结果集中该成员的score值
MAX:将所有集合中某一个元素的score值中最大值作为结果集中该成员的score值

SortedSet有序集合

原文:https://www.cnblogs.com/yuzhongwen/p/15306062.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!