Redis数据类型:有序集合sorted_set
和set集合很像,都不允许出现重复的元素。他们之间的差别在于sorted_set集合中每一元素都会有一个分数(score)与之关联,Redis正是通过分数来为sorted_set集合中的元素进行从小到大的排序。尽管sorted_set集合中的元素不能重复,但是分数(score)却可以重复。
应用场景:取排行榜的前几名或者后几名。
类型操作
1.给集合添加一个或多个元素。
ZADD key [NX|XX] [CH] [INCR] score member [score member ...]
2.获取集合中的元素个数。
ZCARD key
3.获取集合中分数在min和max之间的元素个数。
ZCOUNT key min max
4.获取集合中指定元素的分数。
ZSCORE key member
5.返回指定排名之间的元素(排名从0开始,分数从小到大返回)。
ZRANGE key start stop [WITHSCORES]
6.先把整个集合倒序排好后,返回指定排名之间的元素(排名从0开始,分数从大到小返回,注意:实际物理内存左小右大不会随着命令发生变化)。
ZREVRANGE key start stop [WITHSCORES]
7.返回指定分数之间的元素(分数从小到大返回)。
ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT offset count]
8.先把整个集合倒序排好后,返回指定分数之间的元素(分数从大到小返回,注意:物理内存左小右大不会随着命令发生变化)。
ZREVRANGEBYSCORE key max min [WITHSCORES] [LIMIT offset count]
9.返回指定元素的排名(排名从0开始)。
ZRANK key member
10.先把整个集合倒序排好后,返回指定元素的排名(排名从0开始)。
ZREVRANK key member
11.删除一个或多个元素。
ZREM key member [member ...]
12.删除指定分数之间的元素。
ZREMRANGEBYSCORE key min max
13.删除指定排名之间的元素。
ZREMRANGEBYRANK key start stop
14.给指定元素进行加减运算。(increment可为浮点数,为正数就是加法,为负数就是减法)
ZINCRBY key increment member
15.把指定的集合分数加权重后,求交集,然后进行分数求和(默认)、求最小、求最大运算,并把结果存储到一个指定集合中。
ZINTERSTORE destination numkeys key [key ...] [WEIGHTS weight] [AGGREGATE SUM|MIN|MAX]
16.把指定的集合分数加权重后,求并集,然后进行分数求和(默认)、求最小、求最大运算,并把结果存储到一个指定集合中。
ZUNIONSTORE destination numkeys key [key ...] [WEIGHTS weight] [AGGREGATE SUM|MIN|MAX]