Redis 有序集合(sorted set) 命令

有序集合(sorted set) 是 Redis 中一种非常重要的数据结构。它与集合(set)类似,但每个元素都关联了一个分数(score),使得我们可以根据分数对元素进行排序。这种数据结构非常适合用于排行榜、计分系统等场景。

下面将详细介绍 Redis 有序集合(sorted set) 的相关命令。

ZADD - 添加成员到有序集合

ZADD key score member [score member ...]

使用 ZADD 命令可以向有序集合中添加成员。如果成员已经存在,则会更新其分数,并且重新排序。

示例

上述命令将会创建一个名为 myzset 的有序集合,并添加两个成员,分别为 "one""two",它们的分数分别是 12

ZREM - 删除有序集合中的成员

ZREM key member [member ...]

使用 ZREM 命令可以从有序集合中删除指定的成员。

示例

上述命令将会从 myzset 中删除成员 "one"

ZINCRBY - 增加有序集合中成员的分数

ZINCRBY key increment member

使用 ZINCRBY 命令可以增加或减少有序集合中成员的分数。

示例

上述命令将会把 myzset 中成员 "two" 的分数增加 2

ZCARD - 获取有序集合的成员数量

ZCARD key

使用 ZCARD 命令可以获取有序集合中成员的数量。

示例

上述命令将会返回 myzset 中成员的数量。

ZCOUNT - 统计指定分数范围内的成员数量

ZCOUNT key min max

使用 ZCOUNT 命令可以统计有序集合中分数在指定范围内的成员数量。

示例

上述命令将会返回 myzset 中分数在 -inf5 之间的成员数量。

ZRANGE - 获取指定索引范围内的成员

ZRANGE key start stop [WITHSCORES]

使用 ZRANGE 命令可以获取有序集合中指定索引范围内的成员。如果指定了 WITHSCORES 参数,则会同时返回成员的分数。

示例

上述命令将会返回 myzset 中所有成员及其分数。

ZREVRANGE - 获取指定索引范围内的成员(逆序)

ZREVRANGE key start stop [WITHSCORES]

使用 ZREVRANGE 命令可以获取有序集合中指定索引范围内的成员,但返回的结果是按照分数降序排列的。如果指定了 WITHSCORES 参数,则会同时返回成员的分数。

示例

上述命令将会返回 myzset 中所有成员及其分数,结果是按分数降序排列的。

ZRANGEBYSCORE - 获取指定分数范围内的成员

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

使用 ZRANGEBYSCORE 命令可以获取有序集合中分数在指定范围内的成员。如果指定了 WITHSCORES 参数,则会同时返回成员的分数。如果指定了 LIMIT 参数,则可以限制返回的结果数量。

示例

上述命令将会返回 myzset 中分数在 15 之间的前三个成员及其分数。

ZREVRANGEBYSCORE - 获取指定分数范围内的成员(逆序)

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

使用 ZREVRANGEBYSCORE 命令可以获取有序集合中分数在指定范围内的成员,但返回的结果是按照分数降序排列的。如果指定了 WITHSCORES 参数,则会同时返回成员的分数。如果指定了 LIMIT 参数,则可以限制返回的结果数量。

示例

上述命令将会返回 myzset 中分数在 51 之间的前三个成员及其分数。

ZRANK - 获取成员在有序集合中的排名(正序)

ZRANK key member

使用 ZRANK 命令可以获取成员在有序集合中的排名。排名是从 0 开始的,且结果是按照分数升序排列的。

示例

上述命令将会返回 myzset 中成员 "three" 的排名。

ZREVRANK - 获取成员在有序集合中的排名(逆序)

ZREVRANK key member

使用 ZREVRANK 命令可以获取成员在有序集合中的排名。排名是从 0 开始的,且结果是按照分数降序排列的。

示例

上述命令将会返回 myzset 中成员 "three" 的排名。

ZSCORE - 获取成员的分数

ZSCORE key member

使用 ZSCORE 命令可以获取成员在有序集合中的分数。

示例

上述命令将会返回 myzset 中成员 "three" 的分数。

ZREM_RANGE_BY_RANK - 删除指定排名范围内的成员

ZREMRANGEBYRANK key start stop

使用 ZREMRANGEBYRANK 命令可以删除有序集合中指定排名范围内的成员。排名是从 0 开始的,且结果是按照分数升序排列的。

示例

上述命令将会删除 myzset 中排名在 01 之间的成员。

ZREM_RANGE_BY_SCORE - 删除指定分数范围内的成员

ZREMRANGEBYSCORE key min max

使用 ZREMRANGEBYSCORE 命令可以删除有序集合中分数在指定范围内的成员。

示例

上述命令将会删除 myzset 中分数在 15 之间的成员。

ZLEXCOUNT - 统计指定字典区间内的成员数量

ZLEXCOUNT key min max

使用 ZLEXCOUNT 命令可以统计有序集合中字典区间内的成员数量。这个命令适用于当成员的分数是字符串类型时。

示例

上述命令将会返回 myzset 中字典区间 [a, f) 内的成员数量。

ZRANGEBYLEX - 获取指定字典区间内的成员

ZRANGEBYLEX key min max [LIMIT offset count]

使用 ZRANGEBYLEX 命令可以获取有序集合中字典区间内的成员。这个命令适用于当成员的分数是字符串类型时。

示例

上述命令将会返回 myzset 中字典区间 [a, f) 内的前三个成员。

ZREVRANGEBYLEX - 获取指定字典区间内的成员(逆序)

ZREVRANGEBYLEX key max min [LIMIT offset count]

使用 ZREVRANGEBYLEX 命令可以获取有序集合中字典区间内的成员,但返回的结果是按照字典逆序排列的。这个命令适用于当成员的分数是字符串类型时。

示例

上述命令将会返回 myzset 中字典区间 [f, a] 内的前三个成员。

以上就是 Redis 有序集合(sorted set) 的相关命令介绍。这些命令可以帮助我们更好地管理和操作有序集合,从而实现复杂的数据处理需求。

上一篇: Redis 集合(Set) 命令
下一篇: Redis HyperLogLog
纠错
反馈