Redis基本数据类型Zset有序集合常用操作
Redis数据类型Zset有序集合
有序集合和集合一样也是 string 类型元素的集合,且不允许重复的成员。
不同的是有序集合每个元素都会关联一个 double 类型的分数。redis 正是通过分数来为集合中的成员进行从小到大的排序。
有序集合的成员是唯一的,但分数(score)却可以重复。
集合是通过哈希表实现的,所以添加、删除、查找的复杂度都是 O(1)。
一、zadd
将一个或多个成员元素及其分数值加入到有序集当中。分数值可以是整数值或双精度浮点数。
若有序集合 key 不存在,则创建一个空的有序集并执行zadd
操作。
若 key 存在但不是有序集类型时,返回一个错误。
zadd myzset 1 one 1.11 two 3.25 three
二、zrange
返回有序集中,指定区间内的成员。其中成员的位置按分数值递增(从小到大)来排序。
具有相同分数值的成员按字典序(lexicographical order )来排列。
zrange myzset 0 -1
还可以带上分数返回:
zrange myzset 0 -1 WITHSCORES
三、zrevrange
返回有序集中,指定区间内的成员。其中成员的位置按分数值递减(从大到小)来排列。
zrevrange myzset 0 -1 WITHSCORES
四、zrangebyscore
返回有序集合中指定分数区间的成员列表。有序集成员按分数值递增(从小到大)次序排列。
zrangebyscore myzset (1 2 # 这里相当于 1< score <=2
zrangebyscore myzset 1 2 # 这里相当于 1<= score <=2
zrangebyscore myzset -inf +inf # 这里-inf +inf 相当于 负无穷、正无穷,显示出所有
五、 zrem
移除有序集中的一个或多个成员,不存在的成员将被忽略。
zrem myzset one three four
六、zcard
用于计算集合中元素的数量。
zcard myzset
七、zcount
用于计算有序集合中指定分数区间的成员数量。
zcount myzset 2 5
还有其他的命令,在使用过程中不清楚可以查看官方文档中的命令查询,非常详尽。
set的使用场景也很丰富,比如可以用来用作排序场景、存储工资表、班级成绩表、xx排行榜等等。
本篇文章到此结束,如果您有相关技术方面疑问可以联系我们技术人员远程解决,感谢大家支持本站!