文章目录
- 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. 简介
- 有序集合中的每个元素都由一个成员和一个与成员相关联的分值组成,其中成员以字符串方式存储,而分值则以64位双精度浮点数格式存储
example: - 有序集合中的每个成员都是独一无二, 按照它们各自的分值大小进行排序,分值相同时根据字典序进行排列
- 成员不能相同,分值可以相同
2. zadd
- 添加
- 更新
- XX选项
XX选项的ZADD命令只会对有序集合已有的成员进行更新,而不会向有序集合添加任何新成员 - NX选项
带有NX选项的ZADD命令只会向有序集合添加新成员,而不会对已有的成员进行任何更新 - ch选项
默认情况不带ch选项时,zadd返回的是新添加的成员的数量,修改的成员数量不会返回,带ch选项后也会返回被修改的成员的数量
3. zrem
zrem sorted_set member1 member2....如果用户给定的某个成员并不存在于有序集合中,那么ZREM将自动忽略该成员
4. zscore
zscore sorted_set member5. zincrby
zincrby sorted_set increment member- 增加
- 减少
- 成员不存在/集合不存在
- 给定成员并不存在于有序集合中,或者给定的有序集合并不存在,那么ZINCRBY命令将直接把给定的成员添加到有序集合中,并把给定的增量设置为该成员的分值,效果相当于执行ZADD命令
6. zcard
zcard sorted_set7. zrank/zrevrank
zrank sorted_set memberzrevrank sorted_set member8. zrange/zrevrange
zrange sorted_set start endzrevrange sorted_set start end9. zrangebyscore/zrevrangebyscore
zrangebyscore sorted_set min maxzrevrangebyscore sorted_set max min min参数和max参数分别用于指定用户想要获取的成员的最小分值和最大分值
zrangebyscore sorted_set min max limit offset count10. zcount
zcount sorted_set min max11. zremrangebyrank
zremrangebyrank sorted_set start end12. 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 maxzrevrangebylex sorted_set max min15. zlexcount
zlexcount sorted_set min max16. zremrangebylex
zremrangebylex sorted_set min max17. 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使用手册》黄健宏