• 带你玩转 Redis 的 SortedSet 数据类型


    🎨 个人介绍

    👉大家好,我是:知识的搬运工旺仔

    👉认真分享技术,记录学习过程的点滴,如果我的分享能为你带来帮助,请支持我奥🍻

    👉你的支持,是我每天更新的动力。

    👉赞点:👍 留言:✍ 收藏:⭐

    👉个人格言:想法一步一步的落实,才是你我前进最佳选择。

    1. SortedSet 数据类型简介

    1. 有序的String 集合
    2. 有序集合中不存在重复元素
    3. 每个集合元素都有一个对应的double 类型的分数
    4. 可以通过这个分数对集合元素进行从小到大的排序
    5. 集合元素是唯一的,集合的分数可以重复

    2. 添加元素到有序集合中

    ZADD key score member [[score member] [score member] …]

    :::success

    1. ZADD 命令:添加多个元素到有序集合中
    2. key中存在number ,就会更新number 中的 score 的值
    3. source 可以是double 类型的双精度浮点型,也可以是整数
    4. key 不存在,会创建一个集合。之后在执行SADD操作
    5. 返回成功添加的新元素的数量,不返回更新的数量 :::

    ZINCRBY key increment member

    :::success ZINCRBY 命令:为分数加上增量

    1. 为key 中number 的 score 值增加上 increment 值
    2. 当increment 是负数的时候,相当于 score 减去 increment
    3. key 不是有序集合,返回一个错误 :::

    3. 获取有序集合元素

    ZCARD key

    :::success ZCARD 命令:获取有序集合中的元素数量

    1. 获取key 中 元素 number 的数量
    2. key b不存在,返回0 :::

    ZCOUNT key min max

    :::success ZCOUNT 命令:获取在分数区间内的元素数量

    1. 获取 score 值在min 和 max 之间的元素数量
    2. 默认包含score 值等于 min 或 max :::

    ZLEXCOUNT key min max

    :::success ZLEXCOUNT 命令:获取在指定区间内的元素数量

    1. 这个命令统计的是score 相同的元素
    2. key介于min和max范围内的元素数量
    3. “(” 表示该元素不会被包含在内
    4. “[” 表示该元素会被包含在内
      • 表示集合开始第一个位置,包含第一个位置
    5. -表示集合最后一个位置,包含最后一个位置 :::

    ZRANGE key start stop [WITHSCORES]

    :::success ZRANGE 命令:获取在指定区间内的元素

    1. 获取有序集合key 中指定区间内的元素
    2. 返回按照score 值从小到大的顺序排序的值
    3. start 和 stop 的默认值是0
    4. start 和 stop 超出有序集合下标不引起错误
    5. start > stop ,返回一个空集合
    6. 使用WITHSCORES 选项来返回元素的 score 值,没有这个选项,默认不会返回score :::

    ZREVRANGE key start stop [WITHSCORES]

    :::success ZREVRANGE 命令:获取执行区间内的元素(降序)、

    1. 降序返回有序集合key 中指定区间内的元素
    2. 使用WITHSCORES 选项来返回元素的 score 值,没有这个选项,默认不会返回score :::

    ZSCORE key member

    :::success ZSCORE 命令:获取元素的分数值

    1. 返回有序集合key 中member 元素的 score 值
    2. member 或者 key 不存在,返回nil
    3. 命令执行成功后,会以String 类型的值返回 member 元素的 score 值 :::

    ZRANGEBYLEX key min max [LIMIT offset count]

    :::success ZEANGEBYLEX 命令:获取集合在指定范围内的元素

    1. 返回score 值介于 min 和 max 之间元素。当score 值相同时,按照字典顺序排序
    2. 如果key 中 score 的值,都不相同,返回结果时未指定的(unspecified)
    3. LIMIT offset count 参数用于获取指定范围内的匹配元素,offset是偏移量,count是统计偏移量后边多少个 :::

    ZRANGEBYSCORE key min max [WITHSCORE] [LIMIT offset count]

    :::success ZRANGEBYSCORE 命令:获取在指定区间内的元素

    1. 返回有序集合key 中 score 值介于 min 和 max 之间(包含 min 和 max )的元素
    2. 可以用+inf(集合的第一个元素)、-inf(集合的最后一个元素)来设置 min 和 max
    3. 可以使用"(" 来 修改 min 和max 的默认包含属性,改变为不包含min 和 max
    4. 使用WITHSCORES 选项来返回元素的 score 值,没有这个选项,默认不会返回score
    5. LIMIT offset count 参数用于获取指定范围内的匹配元素,offset是偏移量,count是统计偏移量后边多少个 :::

    ZREVRANGEBYSCORE key max min [WITHSCORE] [LIMIT offset count]

    :::success ZREVRANGEBYSCORE 命令:获取在指定区域内的所有元素(降序)

    1. 降序返回有序集合key 中,score 值介于 max 和 min 之间(包含)的所有元素
    2. 使用WITHSCORES 选项来返回元素的 score 值,没有这个选项,默认不会返回score
    3. LIMIT offset count 参数用于获取指定范围内的匹配元素,offset是偏移量,count是统计偏移量后边多少个 :::

    4. 有序集合排名

    ZRANK key member

    :::success ZRANK 命令:获取有序集合元素的排名

    1. 获取有序集合key 中member 元素的排名
    2. member 不存在 返回 nil :::

    ZREVRANK key member

    :::success ZREVRANK 命令:获取有序集合元素的倒序排序

    1. 倒序返回 member 在 有序集合中的排名
    2. member 不存在 返回 nil :::

    5. 有序集合运算

    ZINTERSTORE destination numkeys key [key…] [WEIGHTS weight [weight…]] [AGGREGATE SUM | MIN | MAX]

    :::success ZINTERSTORE 命令:保存多个有序集合的交集

    1. 计算一个或多个有序集合 key 的交集,其中key 的数量,必须和numbers 相等
    2. 将计算完的结果,保存到destination 中
    3. score 的值,等于所有相同元素score 值的和
    4. 返回保存到destination 结果集中的元素个数 :::

    ZUNIONSTORE destination numkeys key [key…] [WEIGHT [weight] [weight…] ] [AGGREGATE SUM | MIN |MAX]

    :::success ZUNIONSTORE 命令:保存多个有序集合的并集

    1. key 的数量,必须和numbers 相等

    2. score 的值,等于所有相同元素score 值的和

    3. weight 用于给 每一个 score 乘上 weight,这个执行在将值传递给聚合函数之前

    4. WEIGHT 的默认值是 1

    5. AGGREGATE 选项用来指定计算并集结果的聚合方式

      1. SUM:默认的聚合方式,将某个元素所有相同score 的值,相加之后,返回给该元素,作为新的score
      2. MIN:这种聚合方式,是将某个元素所有相同score 的值,找出最小的score,返回给该元素,作为新的score
      3. MAX:这种聚合方式,是将某个元素所有相同score 的值,找出最大的score,返回给该元素,作为新的score :::

    6. 删除有序集合元素

    ZREM key member [member…]

    :::success ZREM 命令:删除有序集合中的多个元素

    1. 删除key中一个或者多个元素,不存在的 key 将会被忽略
    2. key 存在,不是有序集合,将返回一个错误
    3. 执行成功后,返回被删除元素的数量 :::

    ZREMRANGEBYLEX key min max

    :::success ZREMRANGEBYLEX 命令:删除有序集合在指定区间内的元素

    1. 删除有序集合 key 中,介于 min 和 max 范围内的 score 值相同的所有元素
    2. min 和 max 可以包含,也可以不包含,取决于是否使用"(" :::

    ZREMRANGEBYRANK key start stop

    :::success ZREMRANGEBYRANK 命令:删除有序集合在指定排名区间的元素

    1. 删除有序集合 key 在指定排名(rank)区间内的所有元素
    2. 区间范围由start 和 stop 给出,包含 start 和 stop 在内 :::

    ZREMRANGEBYSCORE key min max

    :::success ZREMRANGEBYSCORE 命令:删除有序集合在指定分数区间内的元素

    1. 删除有序集合 key 中,所有score 值,介于 min 和 max 之间(包含)的元素 :::
      🎈看完了不妨给我点个赞吧,👉你的支持,是我每天更新的动力…
  • 相关阅读:
    【经典控制理论】| 自动控制原理知识点概要(上)
    Hadoop3教程(二十):MapReduce的工作机制总结
    在 vue3 中使用高德地图
    node socket.io
    《流畅的python》阅读笔记 - 第一章:python数据模型
    macOS环境使用HomeBrew安装MySQL【日常记录,可供参考】
    redis 初识与入门
    消息中间件篇之RabbitMQ-高可用机制
    万字长文彻底搞懂二叉树
    Three outline物体边界线条实例
  • 原文地址:https://blog.csdn.net/weixin_46213083/article/details/126354241