🎨 个人介绍

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


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. “[” 表示该元素会被包含在内
  • 表示集合开始第一个位置,包含第一个位置
  1. -表示集合最后一个位置,包含最后一个位置 :::

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 之间(包含)的元素 :::