redis数据类型之ZSet

一、简介

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有序列表相关命令的学习总结,如有不对之处还望指正,相互学习,共同进步。

已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 数字20 设计师:CSDN官方博客 返回首页
实付 19.90元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值