ZREMRANGEBYSCORE:移除指定分值范围内的成员

ZREMRANGEBYSCORE 命令可以从有序集合中移除位于指定分值范围内的成员,并在移除操作执行完毕返回被移除成员的数量:

ZREMRANGEBYSCORE sorted_set min max

ZREMRANGEBYSCORE 命令接受的分值范围与 ZRANGEBYSCORE 命令和 ZCOUNT 命令接受的分值范围一样,都默认为闭区间分值范围,但用户可以使用(符号定义闭区间,或者使用 +inf 和 -inf 表示正无限分值或者负无限分值。

作为例子,以下代码展示了如何使用 ZREMRANGEBYSCORE 命令移除 salary 有序集合中分值介于 3000~4000 的成员:

redis> ZREMRANGEBYSCORE salary 3000 4000
(integer) 2 -- 有2个成员被移除了

图6-23 展示了 salary 有序集合在执行 ZREMRANGEBYSCORE 命令过程中的变化。

image 2025 01 03 20 18 21 243
Figure 1. 图6-23 salary有序集合执行ZREMRANGEBYSCORE命令的过程

其他信息

  • 复杂度:O(log(N)+M),其中 N 为有序集合包含的成员数量,M 为被移除成员的数量。

  • 版本要求:ZREMRANGEBYSCORE 命令从 Redis 1.2.0 版本开始可用。