Redis命令之有序集合

1. 简介

  1. 有序集合中的每个元素都由一个成员和一个与成员相关联的分值组成,其中成员以字符串方式存储,而分值则以64位双精度浮点数格式存储
    example:
    在这里插入图片描述
  2. 有序集合中的每个成员都是独一无二, 按照它们各自的分值大小进行排序,分值相同时根据字典序进行排列
  3. 成员不能相同,分值可以相同

2. zadd

  1. 添加
    在这里插入图片描述
  2. 更新
    在这里插入图片描述
  3. XX选项
    XX选项的ZADD命令只会对有序集合已有的成员进行更新,而不会向有序集合添加任何新成员
    在这里插入图片描述
  4. NX选项
    带有NX选项的ZADD命令只会向有序集合添加新成员,而不会对已有的成员进行任何更新
    在这里插入图片描述
  5. ch选项
    默认情况不带ch选项时,zadd返回的是新添加的成员的数量,修改的成员数量不会返回,带ch选项后也会返回被修改的成员的数量
    在这里插入图片描述

3. zrem

zrem sorted_set member1 member2....:从有序集合中移除指定的一个或多个成员以及与这些成员相关联的分值
在这里插入图片描述
如果用户给定的某个成员并不存在于有序集合中,那么ZREM将自动忽略该成员


4. zscore

zscore sorted_set member:获取与给定成员相关联的分值
在这里插入图片描述


5. zincrby

zincrby sorted_set increment member:对有序集合中指定成员的分值执行自增操作,为其加上指定的增量

  1. 增加
    在这里插入图片描述

  2. 减少
    在这里插入图片描述

  3. 成员不存在/集合不存在
    在这里插入图片描述
    给定成员并不存在于有序集合中,或者给定的有序集合并不存在,那么ZINCRBY命令将直接把给定的成员添加到有序集合中,并把给定的增量设置为该成员的分值,效果相当于执行ZADD命令


6. zcard

zcard sorted_set: 获取有序集合包含的成员数量
在这里插入图片描述


7. zrank/zrevrank

zrank sorted_set member:获得成员的升序排列排名
zrevrank sorted_set member:获得成员的降序排列排名
在这里插入图片描述


8. zrange/zrevrange

zrange sorted_set start end: 获取正序排列排名[start,end]范围内的元素
zrevrange sorted_set start end: 获取逆序排列排名[start,end]范围内的元素

在这里插入图片描述在这里插入图片描述


9. zrangebyscore/zrevrangebyscore

zrangebyscore sorted_set min max: 获取分数在[min,max]内的成员
zrevrangebyscore sorted_set max min: 获取分数在[max,min]内的成员
min参数和max参数分别用于指定用户想要获取的成员的最小分值和最大分值
在这里插入图片描述
在这里插入图片描述

  1. 获取成员数量
    zrangebyscore sorted_set min max limit offset count
    offset参数用于指定命令在返回结果之前需要跳过的成员数量,而count参数则用于指示命令最多可以返回多少个成员
    在这里插入图片描述

  2. 使用开区间作为范围
    在这里插入图片描述

  3. 使用无限值作为范围
    在这里插入图片描述


10. zcount

zcount sorted_set min max:统计出有序集合中分值介于指定范围之内的成员数量
在这里插入图片描述
在这里插入图片描述


11. zremrangebyrank

zremrangebyrank sorted_set start end:从升序排列的有序集合中移除位于指定排名范围内的成员,然后返回被移除成员的数量

在这里插入图片描述


12. zremrangebyscore

zremrangebyscore sorted_set min max:从有序集合中移除位于指定分值范围内的成员,并在移除操作执行完毕返回被移除成员的数量
在这里插入图片描述
区间可以使用开区间也可以使用无穷区间,和zrangebyscore/zrevrangebyscore中的使用方法一样


13. zunionstore/zinterstore

zunionstore destination number sorted_set [sorted_set..]: number个有序集合的交集,交集存储到destination中
zinterstore destination number sorted_set [sorted_set..]: number个有序集合的并集,并集存储到destination中
在这里插入图片描述
在这里插入图片描述

  • 指定聚合函数
    zunionstore destination number sorted_set [sorted_set..] [AGGREGATE SUM|MIN|MAX ]默认使用SUM作为聚合函数

在这里插入图片描述

  • 设置权重
    将这个权重与成员的分值相乘,得出成员的新分值,然后执行聚合计算
    在这里插入图片描述

14. zrangebylex/ zrevrangebylex

  • 带有 [ 符号的值表示在结果中包含与给定值具有同等字典序大小的成员
  • 带有 ( 符号的值表示在结果中不包含与给定值具有同等字典序大小的成员
  • 加号 + 表示无穷大
  • 减号 - 表示无穷小

zrangebylex sorted_set min max:统计位于字典序指定范围内的成员数量
在这里插入图片描述
在这里插入图片描述

  • ZREVRANGEBYLEX命令是逆序版的ZRANGEBYLEX命令,它会以逆字典序的方式返回指定范围内的成
    zrevrangebylex sorted_set max min

  • 限制返回数量
    在这里插入图片描述


15. zlexcount

zlexcount sorted_set min max:计有序集合中位于字典序指定范围内的成员数量
在这里插入图片描述


16. zremrangebylex

zremrangebylex sorted_set min max:移除有序集合中位于字典序指定范围内的成员
在这里插入图片描述


17. zpopmax/zpopmin

zpopmax sorted_set [count]:移除并返回有序集合中分值最大和最小的N个元素
zpopmin sorted_set [count]:移除并返回有序集合中分值最小和最小的N个元素

在这里插入图片描述


18. bzpopmax/bzpopmin

bzpopmax sorted_set [sorted_set...] timeout
bzpopmin sorted_set [sorted_set...] timeout

  • 接受任意多个有序集合和一个秒级精度的超时时限作为参数
  • 依次检查用户给定的有序集合,并从它遇到的第一个非空有序集合中弹出指定的元素
  • 检查了所有给定有序集合之后都没有发现可弹出的元素,那么它将阻塞执行命令的客户端,并在给定的时限之内等待可弹出的元素出现,直到等待时间超过给定时限为止
  • 超时时限设置为0来让命令一直阻塞

在这里插入图片描述


参考书籍:
《Redis使用手册》黄健宏

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CodePanda@GPF

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值