您的位置:首页 > 数据库 > Redis

redis之有序集合

2018-03-26 09:09 134 查看

一、概述

 有序集合和集合最大的区别在于有序二字,有序集合为每个元素关联一个分数(元素的分数可以相同)。
 有序集合类型和列表的共同点
 1、二者都是有序的
 2、二者都一个获取某一个范围的元素
 但是二者也有很大的区别



二、命令

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 返回所有的元素
 


4、ZRANGEBYSCORE key min_score max_score [WITHSCORES] [LIMIT OFFSET COUNT]
    获取某个分数范围内的元素

 


备注:在分数前面加 ”(“表示不包括该分数的意思
5、ZINCRBY key imcrement mumber--增加元素的分数,返回增加后,元素的分数
 


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


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


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


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


 


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


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

 ZREVRANK key member(和ZRANK相反)

 


12、计算有序集合的交集
 ZINTERSTORE destination numkeys key [key ...] [WEIGHTS weight [weight...]] [AGGREGATE SUM|MIN?MAX]
 该命令用来计算多个有序集合的交集并将结果存储在destination键中,返回值为destination键中的元素个数
参数解析:
  1)当AGGREGATE 是SUM(默认值),destination键中元素的分数是每个参与计算集合中该元素分数的和
   


2)当AGGREGATE 是MIN,destination键中元素的分数是每个参与计算集合中该元素分数的最小值
3)当AGGREGATE 是MAX,destination键中元素的分数是每个参与计算集合中该元素分数的最大值
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: