Redis 系列02--Redis 数据类型--ZSet

上一篇:Redis 系列02--Redis 数据类型--Set_fengxianaa的博客-CSDN博客

Redis 有序集合和集合一样也是 string 类型元素的集合,且不允许重复的成员。

不同的是每个元素都会关联一个 double 类型的分数。redis 正是通过分数来为集合中的成员进行从小到大的排序。

有序集合的成员是唯一的,但分数(score)却可以重复。

集合中最大的成员数为 2的32次方 - 1 (4294967295, 每个集合可存储40多亿个成员)。

  • zadd:将一个或多个成员元素及其分数值加入到有序集当中,如果有序集合的 key 不存在,则创建一个空的有序集并执行 ZADD 操作
    • 下图,将 test1 test2 test3 添加到有序集合 fengxiansheng 中,分值分别是:1,2,3
      • 如果添加的元素已经存在,那么更新它的分数,分数可以是小数
  • zrange:返回有序集合中,指定区间内的成员,0 表示有序集第一个成员,以 1 表示有序集第二个成员,以此类推。
    • 也可以使用负数下标,以 -1 表示最后一个成员, -2 表示倒数第二个成员,以此类推。
      按分数从小到大来排序
    • 如果不加 withscores 参数,不会返回分数
    • 如果分数相同,按字典序来排列
  • zrevrange:跟 zrange 类似,区别是:按分数从大到小来排列
  • zcard:返回算集合中元素的数量。
    • 如果集合并不存在,返回0
  • zcount:返回有序集合中,指定分数区间的成员数量。
  • zincrby:对有序集合中指定成员的分数加上增量 increment,返回最终
    • 下图,对 test1 元素增加 1 分
    • 也可以通过传递一个负数 ,让分数减去相应的值,下图,对 test1 元素,减去 1 分
      • 当 集合不存在,或者目标不是集合中的成员,zincrby 命令相当于 zadd命令
  • zrangebyscore:返回有序集合中,指定分数区间的成员,按分数从小到大 排列。
    •         
    • 也可以使用开闭区间,比如:返回 2< N <=5 的元素
      • 下图,因为 test2 元素是 2分,所以结果中没有它
      • 下图中,返回 2<= N <4 的元素
      • 获取所有元素
      • 获取所有元素,带分数
  • zrevrangebyscore:跟zrangebyscore类似,不过是按分数从大到小排列
     
  • zrank:返回有序集中,指定成员的排名,排名从0开始,分数最小的是第一名
  • zrevrank:跟 zrank 类似,不过,分数最大的是第一名
  • zrem:删除集合中一个或多个成员,返回删除的元素个数
  • zremrangebyscore:删除集合中,指定分数区间内的所有成员。
    • 下图,删除 2< N <=3 的元素
    • 下图,删除 分数=1 的元素
  • zremrangebyrank:删除有序集中,指定索引区间的所有成员
    • 删除集合中所有元素
  • zscore:返回指定元素的分数值
    • 如果元素不存在,返回 nil
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值