ZrangebyscoreCommand
#sidebar
SortedSetCommandsSidebar 1.1) =
1.3.4) =
Time complexity: O(log(N))+O(M) with N being the number of elements in the sorted set and M the number of elements returned by the command, so if M is constant (for instance you always ask for the first ten elements with LIMIT) you can consider it O(log(N))Return the all the elements in the sorted set at key with a score between_min_ and max (including elements with score equal to min or max).
The elements having the same score are returned sorted lexicographically asASCII strings (this follows from a property of Redis sorted sets and does notinvolve further computation).
Using the optional LIMIT it's possible to get only a range of the matchingelements in an SQL-alike way. Note that if offset is large the commandsneeds to traverse the list for offset elements and this adds up to theO(M) figure.
min and
max can be -inf and +inf, so that you are not required to know what's the greatest or smallest element in order to take, for instance, elements "up to a given value".
Also while the interval is for default closed (inclusive) it's possible to specify open intervals prefixing the score with a "(" character, so for instance:
ZRANGEBYSCORE zset (1.3 5
Will return all the values with score
> 1.3 and <= 5, while for instance:
ZRANGEBYSCORE zset (5 (10
Will return all the values with score
> 5 and < 10 (5 and 10 excluded).
Multi bulk reply, specifically a list of elements in the specified score range.
redis> zadd zset 1 foo
(integer) 1
redis> zadd zset 2 bar
(integer) 1
redis> zadd zset 3 biz
(integer) 1
redis> zadd zset 4 foz
(integer) 1
redis> zrangebyscore zset -inf +inf
1. "foo"
2. "bar"
3. "biz"
4. "foz"
redis> zrangebyscore zset 1 2
1. "foo"
2. "bar"
redis> zrangebyscore zset (1 2
1. "bar"
redis> zrangebyscore zset (1 (2
(empty list or set)