redis之有序集合

一、概述

 有序集合和集合最大的区别在于有序二字,有序集合为每个元素关联一个分数(元素的分数可以相同)。

 有序集合类型和列表的共同点

 1、二者都是有序的

 2、二者都一个获取某一个范围的元素

 但是二者也有很大的区别

redis之有序集合_第1张图片


二、命令

1、ZADD  key score number [score number ......] 

 向有序集合加入一个元素和该元素的分数,如果该元素已经存在的话,则是更新该元素的分数,命令的返回值是,新加入到集合的元素个数。其中分数不仅可以是整数还可以是浮点数。

备注:+inf和-inf代表的是正无穷和负无穷


2、ZSCORE key member --获取元素的分数

 

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

 ZRANGE key start  stop [WITHSCORES] 

 ZREVRANGE key start  stop [WITHSCORES] 

 

备注:

 1)WITHSCORES 返回的列表带有分数

 2)ZREVRANGE 和 ZRANGE唯一的不用就是ZREVRANGE是按照元素分数从大到小排序输出的

3)如果元素的分数相同的话,元素会按照字典排序("0"<"9"<"A"<"Z"<"a"<"z")的顺序进行排列

4) ZRANGE key 0 -1 返回所有的元素

 redis之有序集合_第2张图片

4、ZRANGEBYSCORE key min_score max_score [WITHSCORES] [LIMIT OFFSET COUNT]

    获取某个分数范围内的元素

 

备注:在分数前面加 ”(“表示不包括该分数的意思

5、ZINCRBY key imcrement mumber--增加元素的分数,返回增加后,元素的分数

 redis之有序集合_第3张图片

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

 

7、ZCOUNT key min_score max_score --获得指定分数范围内的元素个数

 redis之有序集合_第4张图片

8、ZREM key member [member .....]--删除一个或是多个元素,返回的是被删除元素的个数

  

9、ZREMRANGEBYRANK key start stop --删除指定排名的元素

 

 redis之有序集合_第5张图片

10、ZREMRANGEBYSCORE key start stop--按照分数范围删除元素

 redis之有序集合_第6张图片

11、获得元素的排名

 ZRANK key member (按照元素的从小到大的顺序获取指定元素的排名,排名从0开始)

 ZREVRANK key member(和ZRANK相反)

 redis之有序集合_第7张图片

12、计算有序集合的交集

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

 该命令用来计算多个有序集合的交集并将结果存储在destination键中,返回值为destination键中的元素个数

参数解析:

  1)当AGGREGATE 是SUM(默认值),destination键中元素的分数是每个参与计算集合中该元素分数的和

   redis之有序集合_第8张图片

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

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

你可能感兴趣的:(redis)