目录
一:概念
类似Set集合
有序的、去重的
元素是字符串类型
每一个元素都关联着一个浮点数分值(Score),并按照分值从小到大的顺序排列集合中的元素。分值可以相同
最多包含2^32-1元素
二:命令
1:添加元素
ZADD key score member [score member ...]
如果元素已经存在,则使用新的score
2:移除一个或者多个元素
ZREM key member [member ...]
元素不存在,自动忽略
3:显示分值
ZSCORE key member
计算机并不能精确表达每一个浮点数,都是一种近似表达
4:增加或者减少分值
ZINCRBY key increment member
increment为负数就是减少
5:返回元素的排名(索引)(没有就是null)
ZRANK key member
6:返回元素的逆序排名
ZREVRANK key member
7:返回指定索引区间元素
ZRANGE key start stop [WITHSCORES]
如果score相同,则按照字典序lexicographical order 排列
默认按照score从小到大,如果需要score从大到小排列,使用ZREVRANGE
8:返回指定分值区间元素
ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT offset count]
返回score默认属于[min,max]之间,元素按照score升序排列,score相同字典序
LIMIT中offset代表跳过多少个元素,count是返回几个。类似于Mysql
使用小括号,修改区间为开区间,例如(5、(10、5)
-inf和+inf表示负无穷和正无穷
9:移除指定排名范围的元素
ZREMRANGEBYRANK key start stop
10:移除指定分值范围的元素
ZREMRANGEBYSCORE key min max
11:返回集合中元素个数
ZCARD key
14:并集
ZUNIONSTORE destination numkeys key [key ...] [WEIGHTS weight] [AGGREGATE SUM|MIN|MAX]
numkeys指定key的数量,必须(一个公共元素指定大小为2)
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
15:交集
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值
例子:
ZADD scores3 80 tom 90 peter 60 john
ZADD scores4 90 peter 60 ben
ZINTERSTORE scores-all3 2 scores3 scores4
ZINTERSTORE scores-all5 2 scores3scores4 WEIGHTS 1 0.5 AGGREGATE SUM