Redis数据类型之有序集合类型--Redis系列六

有序集合的时间复杂度是O(log(N))

1、增加元素

ZADD key score member[score member...]

ZADD命令用来向有序集合中加入一个元素和该元素的分数,如果该元素已经存在则会用新的分数替换原来的分数。

ZADD返回的是新加入到集合中元素的个数(不包含之前已经存在的元素)。

分数支持双精度浮点数。+inf和-inf分别表示正无穷和负值

支持两个元素的分数相同。

2、获得元素分数

ZSCORE key member

3、获得排名在某个范围的元素列表

ZRANGE key start stop [WITHSCORES]   start 和 stop指的是元素位置

ZREVRANGE key start stop [WITHSCORES] 按照分数从大到小

ZRANGE命令会按照元素分数从小到大的顺序返回索引从start到stop之间的所有元素(包含两端元素),负值代表从后向前查找

WITHSCORES会带分数返回,如果两个元素分数一样,会按照字典顺序来进行排序;

时间复杂度O(logn+m),n为有序集合的基数,m为返回元素个数。

4、获得指定分数范围内的元素

ZRANGEBYSCORE key min max  [WITHSCORES] [LIMIT offset count]

1)该命令按照元素从小到大的顺序返回分数在min和max之间(包含min和max)的元素

2)如果不想包含端点,可以在分数前面加上"(",例如 ZRANGEBYSCORE  board 80 (100

3)也支持-inf 和+inf

4)[LIMIT offset count] 和SQL中用法类似 向后偏移offset个元素,并且只获取前count个元素

 例如ZRANGEBYSCORE board 60 +inf LIMIT 1 3 是获得分数高于60分的从第二个人开始的三个人

5、增加某个元素分数

ZINCRBY key increment member 

返回值是更改后的分数

6、获得集合中元素的数量

ZCARD key

7、获得指定范围内元素个数

ZCOUNT key min max

8、删除一个或多个元素

ZREM key member[memeber...]

9、按照排名范围删除元素

ZREMRANGEBYRANK key start stop 

按照分数从小到大的顺序(即索引0表示最小的值)删除在指定排名范围内的所有元素,并返回删除元素数量

10、按照分数范围删除元素

ZREMRANGESCORE key min max

11、获得元素的排名

ZRANK key member 从0开始 即分数最小的元素排名为0

ZREVRANK key member 逆向排序 分数最大的为0 

12、计算有序集合的交集

ZINTERSTORE destination numkeys key [key...] [WEIGHTS weight [weight ...]] [AGGREGATE SUM|MIN|MAX]

ZINTERSTORE命令用来计算多个有序集合的交集并将结果存储在destination键中(同样以有序集合类型存储),返回值是destination键中元素个数

1)当AGGREGATE是sum时destination 键中元素分数是每个参与计算的集合中该元素分数的和。

2)AGGREGATE是min时destination 键中元素分数是每个参与计算的集合中该元素分数最小值。

3)AGGREGATE是min时destination 键中元素分数是每个参与计算的集合中该元素分数最大值。

你可能感兴趣的:(redis)