本文内容为 http://redis.io/commands/zremrangebylex 的翻译、注解、例子扩充及其它修改。感谢 Redis 作者 Antirez 为开源社区作出的贡献,本文保证最新、最准、最全以表示对其的敬意。欢迎留言纠错、提示更新或支持。
ZREMRANGEBYLEX key min max

当插入到有序集合(Sorted set)中的所有元素的分值(Score)都相同时,使用当前命令可以认为存储在键 key 中的有序集合中的元素是按字典序排序(Lexicographical ordering)的,然后删除值在最小值 min 及最大值 max 之间的所有元素。

When all the elements in a sorted set are inserted with the same score, in order to force lexicographical ordering, this command removes all elements in the sorted set stored at key between the lexicographical range specified by min and max.

最小值 min 及最大值 max 选项与命令 ZRANGEBYLEX 中的对应选项有相同的含义。

  • 返回删除的元素个数。

    The number of elements removed.
  • redis> ZADD myzset 0 aaaa 0 b 0 c 0 d 0 e
    (integer) 5
    redis> ZADD myzset 0 foo 0 zap 0 zip 0 ALPHA 0 alpha
    (integer) 5
    redis> ZRANGE myzset 0 -1
    1) "ALPHA"
     2) "aaaa"
     3) "alpha"
     4) "b"
     5) "c"
     6) "d"
     7) "e"
     8) "foo"
     9) "zap"
    10) "zip"
    redis> ZREMRANGEBYLEX myzset [alpha [omega
    (integer) 6
    redis> ZRANGE myzset 0 -1
    1) "ALPHA"
    2) "aaaa"
    3) "zap"
    4) "zip"
  • 版本支持

    2.8.9+

    时间复杂度(Time complexity)

    O(log(N)+M)N 为有序集合中元素的个数,M 为删除的元素个数。

    O(log(N)+M) with N being the number of elements in the sorted set and M the number of elements removed by the operation.