ZREVRANGE
Returns a range of members in a sorted set, by index, with scores ordered from high to low.
Syntax
ZREVRANGE key start stop [WITHSCORES]
Parameters
- key: The name of the sorted set.
- start: The starting index of the range (0-based). Negative indices can be used to indicate offsets from the end of the sorted set.
- stop: The ending index of the range (inclusive). Negative indices can be used to indicate offsets from the end of the sorted set.
- WITHSCORES: Optional. When specified, the command returns both the members and their scores.
Details
- Available since: 1.2.0
- Time complexity: O(log(N) + M) where N is the number of elements in the sorted set, and M is the number of elements in the result.
- ACL categories:
@read,@sortedset,@fast
The ZREVRANGE command retrieves members in a sorted set stored at key within the specified range of indices, but with the scores ordered from high to low. The range is inclusive of both start and stop, and members are returned in descending order by their scores.
Indexing
- 0: The first element in the sorted set (highest score).
- -1: The last element in the sorted set (lowest score).
- -2: The second last element, and so on.
If start is greater than stop, an empty array is returned.
Examples
Basic Usage
Assume we have a sorted set called myzset with the following members:
ZADD myzset 1 "a" 2 "b" 3 "c" 4 "d" 5 "e"
To retrieve the members from index 1 to 3 in descending order:
ZREVRANGE myzset 1 3
This will return:
1) "d"
2) "c"
3) "b"
Retrieving with Scores
To retrieve the members from index 0 to 2 along with their scores:
ZREVRANGE myzset 0 2 WITHSCORES
This will return:
1) "e"
2) "5"
3) "d"
4) "4"
5) "c"
6) "3"
Using Negative Indices
To retrieve the last two members in descending order:
ZREVRANGE myzset -2 -1
This will return:
1) "b"
2) "a"
Edge Cases
- If the key does not exist,
ZREVRANGEreturns an empty array. - If the key exists but is not a sorted set, an error is returned.
- If
startis greater thanstop,ZREVRANGEreturns an empty array.
RESP2/RESP3 Reply
- Array reply: list of members in the specified range, optionally with their scores if
WITHSCORESis used.