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

返回储存在键 key 对应的有序集合(Sorted set)中且分值(Socre)在最大值 max 及最小值 min 之间(包括值等于 minmax 的元素)的所有元素。

Returns all the elements in the sorted set at key with a score between max and min (including elements with score equal to max or min).

与有序集合中的默认排序不同,对该命名来说,所有元素被认为是按最高分值(Score)到最低分值排序。

如果分值相同,则按逆字典序(Reverse lexicographical order )排序。

如果不考虑逆序,命令 ZREVRANGEBYSCORE 与 命令 ZRANGEBYSCORE 基本相似。

  • 指定范围中的元素列表(可包含对应的分值)。

    List of elements in the specified range (optionally with their scores).
  • redis> ZADD myzset 1 "one"
    (integer) 1
    redis> ZADD myzset 2 "two"
    (integer) 1
    redis> ZADD myzset 3 "three"
    (integer) 1
    redis> ZREVRANGEBYSCORE myzset +inf -inf
    1) "three"
    2) "two"
    3) "one"
    redis> ZREVRANGEBYSCORE myzset 2 1
    1) "two"
    2) "one"
    redis> ZREVRANGEBYSCORE myzset 2 (1
    1) "two"
    redis> ZREVRANGEBYSCORE myzset (2 (1
    (empty list or set)
  • 版本支持

    2.2.0+

    时间复杂度(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 being returned. If M is constant (e.g. always asking for the first 10 elements with LIMIT), you can consider it O(log(N)).