SortedSet 有序集合,与list不同,list是取出和插入的位置有顺序,但是对元素本身的大小不排序,SortedSet则是对元素本身进行排序
添加
ZADD key score member [[score member] [score member] …]
在添加的时候需要添加score分值,来保证它的位置和顺序,如果分值一样则按字典的顺序排序
修改该元素的分值,需要重新插入该元素,保证它的分值
取出
按索引取出
ZRANGE key start stop [WITHSCORES]
按分值从小到达的顺序的排序, 加上WITHSCORES 就是把分值也取出,如果分值一样则按字典正序排
ZREVRANGE key start stop [WITHSCORES]
按分值从大到小排序, 加上WITHSCORES 就是把分值也取出,如果分值一样则按字典顺序倒序排
start: 开始索引
stop: 结束索引


按分值取出
ZRANGEBYSCORE key min max [LIMIT offset count]
按分值从小到大的顺序,取出分值介于min和max之间的元素,[LIMIT offset count] 是可选参数,和sql中的 limit offset count 一样,offset表示起始索引,count表示返回的数量。
**注意:**该命令key 后面放的是小分值
举例:
1.取出k1集合中分值>=1 &&<=3的元素;从索引为1的位置开始取,取出两个,按分值从小到大排序

2. 取出k1集合中分值>=3 &&<=1的元素;

ZREVRANGEBYSCORE key max min [WITHSCORES] [LIMIT offset count]
按分值从大到小的顺序,取出分值介于max和min之间的元素,[LIMIT offset count] 是可选参数,和sql中的 limit offset count 一样,offset表示起始索引,count表示返回的数量
注意: 该命令key后面放的是大分值
举例:
- 取出分值小于等于1 并且大于等于3的元素, 这里1就在前面命令为:zrevrangebyscore k1 1 3

2. 取出分值小于等于3 并且大于等于1的元素, 分值按大到小排序

获取元素的分值
ZSCORE key member

获取数量
ZCARD key
返回该集合的元素个数,key不存在时,返回0

ZCOUNT key min max
返回分值在min和max之间的元素数量

获取元素排名
ZRANK key member
按从小到大的顺序排名,最小的排名是0 ,一次递推
ZREVRANK key member
按从大到小的顺序排名,最大的排名是0 ,一次递推

移除
Zrem key member [member …]
移除集合中一个或者多个元素

ZREMRANGEBYRANK key start stop
移除有序集 key 中,索引为 start和stop之间的元素, 包括start和stop

ZREMRANGEBYSCORE key min max
移除有序集 key 中,分值为min和max之间的元素, 包括min和max

遍历
ZSCAN key cursor [MATCH pattern] [COUNT count] 参考SCAN命令
差集 交集 并集
差集
ZDIFF numkeys key [key …] [WITHSCORES]
numkeys :key 的数量 K1 对k2的差集

k2对k1的差集

交集
ZINTER numkeys key [key …] [WEIGHTS weight] [AGGREGATE SUM|MIN|MAX] [WITHSCORES]
numkeys :key的数量
WEIGHTS :乘法因子;你可以为每个给定的有序集指定一个乘法因子,意思就是,每个给定有序集的所有成员的score值在传递给聚合函数之前都要先乘以该因子。如果WEIGHTS没有给定,默认是 1。
AGGREGATE :聚合函数,两个key之间的计算方式
举例: 求k1 和k2的交集, 交的分值等于 scores=k1_scores3+k1_scores2

ZINTERSTORE destination numkeys key [key …] [WEIGHTS weight] [AGGREGATE SUM|MIN|MAX] 将求取的交集保存到一个新的集合中

并集
**
不保存到新集合:
ZUNION numkeys key [key …] [WEIGHTS weight] [AGGREGATE SUM|MIN|MAX] [WITHSCORES]保存到新集合:
ZUNIONSTORE destination numkeys key [key …] [WEIGHTS weight] [AGGREGATE SUM|MIN|MAX]**
















