目录
一、简介
二、使用详解
三、总结
一、简介
ZSet,简称Sorted Set有序集合,和集合一样也是String类型元素的集合, 且不允许重复的成员。不同的是每个元素都会关联一个double类型的分数Score。redis正是通过分数来为集合中的成员进行从小到大的排序。有序集合的成员是唯一的,但分数(score)却可以重复。集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是O(1)。 集合中最大的成员数为 2^32 - 1(4294967295, 每个集合可存储40多亿个成员)。
和Set的区别:在Set基础上加上一个Score值,之前Set是k1 v1 v2 v3,现在ZSet是k1 score v1 score v2...。
下面通过一张表总结ZSet有序列表中常用命令:
ZSet数据类型常用命令
命令 | 使用说明 |
zadd | 向集合中添加一个或者多个元素(score - value对) |
zrange | 获取集合中的元素,如果加上withscores则会连同分数一并返回 |
zrangebyscore | 返回指定分数范围的元素 |
zrem | 删除元素 |
zcard | 返回集合中元素个数 |
zcount | 统计集合中元素的分数在min和max之间的个数 |
zrank | 获取元素在集合中的排名 |
zscore | 获取有序集合中元素对应的分数值 |
zrevrank | 逆序获得下标值 |
zrevrange | 倒序返回集合中的元素 |
zrevrangebyscore | 倒序根据分数范围输出集合元素 |
二、使用详解
【a】zadd/zrange
- zadd:向集合中添加一个或者多个元素(score - value对);
- zrange:获取集合中的元素,如果加上withscores则会连同分数一并返回;
注意:withscores参数会将分数一起返回,如下图
【b】zrangebyscore
- zrangebyscore:返回指定分数范围的元素;
注意:符号“(” 表示不包含。
【c】zrem
- zrem:删除元素,注意删除不存在的元素返回0;
【d】zcard/zcount/zrank/zscore
- zcard :返回集合中元素个数;
- zcount:统计集合中元素的分数在min和max之间的个数;
- zrank:获取元素在集合中的排名,从小到大排序,最小的排名是0,如果元素不存在,则返回 nil;
- zscore:获取有序集合中元素对应的分数值,如果元素不存在,返回nil;
【e】zrevrank
- zrevrank:作用是逆序获得下标值;
【f】zrevrange
- zrevrange:倒序返回集合中的元素;
【g】zrevrangebyscore
- zrevrangebyscore:倒序根据分数范围输出集合元素,注意大的分数需要写在前面,小的分数写在后面;
三、总结
以上就是关于ZSet有序列表相关命令的学习总结,如有不对之处还望指正,相互学习,共同进步。