有序集合和集合最大的区别在于有序二字,有序集合为每个元素关联一个分数(元素的分数可以相同)。
有序集合类型和列表的共同点
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_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键中元素的分数是每个参与计算集合中该元素分数的最大值