🎨 个人介绍
👉大家好,我是:知识的搬运工旺仔
1. SortedSet 数据类型简介
- 有序的String 集合
- 有序集合中不存在重复元素
- 每个集合元素都有一个对应的double 类型的分数
- 可以通过这个分数对集合元素进行从小到大的排序
- 集合元素是唯一的,集合的分数可以重复
2. 添加元素到有序集合中
ZADD key score member [[score member] [score member] …]
:::success
- ZADD 命令:添加多个元素到有序集合中
- key中存在number ,就会更新number 中的 score 的值
- source 可以是double 类型的双精度浮点型,也可以是整数
- key 不存在,会创建一个集合。之后在执行SADD操作
- 返回成功添加的新元素的数量,不返回更新的数量 :::
ZINCRBY key increment member
:::success ZINCRBY 命令:为分数加上增量
- 为key 中number 的 score 值增加上 increment 值
- 当increment 是负数的时候,相当于 score 减去 increment
- key 不是有序集合,返回一个错误 :::
3. 获取有序集合元素
ZCARD key
:::success ZCARD 命令:获取有序集合中的元素数量
- 获取key 中 元素 number 的数量
- key b不存在,返回0 :::
ZCOUNT key min max
:::success ZCOUNT 命令:获取在分数区间内的元素数量
- 获取 score 值在min 和 max 之间的元素数量
- 默认包含score 值等于 min 或 max :::
ZLEXCOUNT key min max
:::success ZLEXCOUNT 命令:获取在指定区间内的元素数量
- 这个命令统计的是score 相同的元素
- key介于min和max范围内的元素数量
- “(” 表示该元素不会被包含在内
- “[” 表示该元素会被包含在内
- 表示集合开始第一个位置,包含第一个位置
- -表示集合最后一个位置,包含最后一个位置 :::
ZRANGE key start stop [WITHSCORES]
:::success ZRANGE 命令:获取在指定区间内的元素
- 获取有序集合key 中指定区间内的元素
- 返回按照score 值从小到大的顺序排序的值
- start 和 stop 的默认值是0
- start 和 stop 超出有序集合下标不引起错误
- start > stop ,返回一个空集合
- 使用WITHSCORES 选项来返回元素的 score 值,没有这个选项,默认不会返回score :::
ZREVRANGE key start stop [WITHSCORES]
:::success ZREVRANGE 命令:获取执行区间内的元素(降序)、
- 降序返回有序集合key 中指定区间内的元素
- 使用WITHSCORES 选项来返回元素的 score 值,没有这个选项,默认不会返回score :::
ZSCORE key member
:::success ZSCORE 命令:获取元素的分数值
- 返回有序集合key 中member 元素的 score 值
- member 或者 key 不存在,返回nil
- 命令执行成功后,会以String 类型的值返回 member 元素的 score 值 :::
ZRANGEBYLEX key min max [LIMIT offset count]
:::success ZEANGEBYLEX 命令:获取集合在指定范围内的元素
- 返回score 值介于 min 和 max 之间元素。当score 值相同时,按照字典顺序排序
- 如果key 中 score 的值,都不相同,返回结果时未指定的(unspecified)
- LIMIT offset count 参数用于获取指定范围内的匹配元素,offset是偏移量,count是统计偏移量后边多少个 :::
ZRANGEBYSCORE key min max [WITHSCORE] [LIMIT offset count]
:::success ZRANGEBYSCORE 命令:获取在指定区间内的元素
- 返回有序集合key 中 score 值介于 min 和 max 之间(包含 min 和 max )的元素
- 可以用+inf(集合的第一个元素)、-inf(集合的最后一个元素)来设置 min 和 max
- 可以使用"(" 来 修改 min 和max 的默认包含属性,改变为不包含min 和 max
- 使用WITHSCORES 选项来返回元素的 score 值,没有这个选项,默认不会返回score
- LIMIT offset count 参数用于获取指定范围内的匹配元素,offset是偏移量,count是统计偏移量后边多少个 :::
ZREVRANGEBYSCORE key max min [WITHSCORE] [LIMIT offset count]
:::success ZREVRANGEBYSCORE 命令:获取在指定区域内的所有元素(降序)
- 降序返回有序集合key 中,score 值介于 max 和 min 之间(包含)的所有元素
- 使用WITHSCORES 选项来返回元素的 score 值,没有这个选项,默认不会返回score
- LIMIT offset count 参数用于获取指定范围内的匹配元素,offset是偏移量,count是统计偏移量后边多少个 :::
4. 有序集合排名
ZRANK key member
:::success ZRANK 命令:获取有序集合元素的排名
- 获取有序集合key 中member 元素的排名
- member 不存在 返回 nil :::
ZREVRANK key member
:::success ZREVRANK 命令:获取有序集合元素的倒序排序
- 倒序返回 member 在 有序集合中的排名
- member 不存在 返回 nil :::
5. 有序集合运算
ZINTERSTORE destination numkeys key [key…] [WEIGHTS weight [weight…]] [AGGREGATE SUM | MIN | MAX]
:::success ZINTERSTORE 命令:保存多个有序集合的交集
- 计算一个或多个有序集合 key 的交集,其中key 的数量,必须和numbers 相等
- 将计算完的结果,保存到destination 中
- score 的值,等于所有相同元素score 值的和
- 返回保存到destination 结果集中的元素个数 :::
ZUNIONSTORE destination numkeys key [key…] [WEIGHT [weight] [weight…] ] [AGGREGATE SUM | MIN |MAX]
:::success ZUNIONSTORE 命令:保存多个有序集合的并集
- key 的数量,必须和numbers 相等
- score 的值,等于所有相同元素score 值的和
- weight 用于给 每一个 score 乘上 weight,这个执行在将值传递给聚合函数之前
- WEIGHT 的默认值是 1
- AGGREGATE 选项用来指定计算并集结果的聚合方式
- SUM:默认的聚合方式,将某个元素所有相同score 的值,相加之后,返回给该元素,作为新的score
- MIN:这种聚合方式,是将某个元素所有相同score 的值,找出最小的score,返回给该元素,作为新的score
- MAX:这种聚合方式,是将某个元素所有相同score 的值,找出最大的score,返回给该元素,作为新的score :::
6. 删除有序集合元素
ZREM key member [member…]
:::success ZREM 命令:删除有序集合中的多个元素
- 删除key中一个或者多个元素,不存在的 key 将会被忽略
- key 存在,不是有序集合,将返回一个错误
- 执行成功后,返回被删除元素的数量 :::
ZREMRANGEBYLEX key min max
:::success ZREMRANGEBYLEX 命令:删除有序集合在指定区间内的元素
- 删除有序集合 key 中,介于 min 和 max 范围内的 score 值相同的所有元素
- min 和 max 可以包含,也可以不包含,取决于是否使用"(" :::
ZREMRANGEBYRANK key start stop
:::success ZREMRANGEBYRANK 命令:删除有序集合在指定排名区间的元素
- 删除有序集合 key 在指定排名(rank)区间内的所有元素
- 区间范围由start 和 stop 给出,包含 start 和 stop 在内 :::
ZREMRANGEBYSCORE key min max
:::success ZREMRANGEBYSCORE 命令:删除有序集合在指定分数区间内的元素
- 删除有序集合 key 中,所有score 值,介于 min 和 max 之间(包含)的元素 :::