文章目录

  • 1. 简介
  • 2. zadd
  • 3. zrem
  • 4. zscore
  • 5. zincrby
  • 6. zcard
  • 7. zrank/zrevrank
  • 8. zrange/zrevrange
  • 9. zrangebyscore/zrevrangebyscore
  • 10. zcount
  • 11. zremrangebyrank
  • 12. zremrangebyscore
  • 13. zunionstore/zinterstore
  • 14. zrangebylex/ zrevrangebylex
  • 15. zlexcount
  • 16. zremrangebylex
  • 17. zpopmax/zpopmin
  • 18. bzpopmax/bzpopmin


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. 成员不存在/集合不存在
  4. 给定成员并不存在于有序集合中,或者给定的有序集合并不存在,那么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 endzrevrange sorted_set start end

9. zrangebyscore/zrevrangebyscore

zrangebyscore sorted_set min max
zrevrangebyscore sorted_set max min

min参数和max参数分别用于指定用户想要获取的成员的最小分值和最大分值


zrangebyscore sorted_set min max limit offset count

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..]
zinterstore destination number sorted_set [sorted_set..]


zunionstore destination number sorted_set [sorted_set..] [AGGREGATE SUM|MIN|MAX ]
  • 设置权重
    将这个权重与成员的分值相乘,得出成员的新分值,然后执行聚合计算

14. zrangebylex/ zrevrangebylex

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


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]zpopmin sorted_set [count]

18. bzpopmax/bzpopmin

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

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