Prefer ZRANGE with BYSCORE in new code: ZRANGE <key> <min> <max> BYSCORE [LIMIT <offset> <count>] [WITHSCORES].
Use ZRANGEBYSCORE to list the members of a sorted set whose score falls in a range, from the lowest score up.
Bounds are inclusive by default, become exclusive when prefixed with (, and accept -inf and +inf for open ends. WITHSCORES returns each member with its score, and LIMIT <offset> <count> pages through the result, which is how you take the first N above a threshold without transferring the rest.
With timestamps as scores this is the natural range query over time.
Syntax#
Arguments#
| Argument | Required | Repeatable | Description |
|---|---|---|---|
<key> | Yes | No | Redis key targeted by the command. |
<min> | Yes | No | Minimum score: a number, -inf, or (score for an exclusive bound. |
<max> | Yes | No | Maximum score: a number, +inf, or (score for an exclusive bound. |
WITHSCORES | No | No | Include sorted-set scores. |
LIMIT <offset> <count> | No | No | Skip <offset> matches and return at most <count>; a <count> of -1 returns all remaining. |
Important points#
- RESP2 represents floating-point reply values as bulk strings; RESP3 may use native double replies. Client libraries commonly decode either form to a language number.
Response#
The reply reports the result of the operation. Error replies have the same shape in RESP2 and RESP3 and are surfaced as exceptions by the SDKs below.
| Protocol | Reply |
|---|---|
| RESP2 | Array of members, or flat member/score array with WITHSCORES |
| RESP3 | Array of members, or array of member/score pairs with WITHSCORES |
Client libraries often decode bulk strings, maps, sets, and numeric strings into language-native values. The table describes the Redis wire reply.
Examples#
TCP examples use the TLS REDIS_URL from the Upstash console. REST examples use UPSTASH_REDIS_REST_URL and UPSTASH_REDIS_REST_TOKEN.
Redis CLI
@upstash/redis
This command is not supported yet in @upstash/redis.