Use LRANGE to read a range of elements from a list.
Both <start> and <stop> are zero-based, inclusive, and may be negative to count from the tail, so LRANGE key 0 -1 returns the whole list and LRANGE key 0 9 returns the first ten elements. Out-of-range indexes are clamped instead of producing an error, and a range that selects nothing, or a missing key, returns an empty list.
The command copies the requested range into the reply, so reading a large list in one call is expensive: page through it with successive ranges when the list is big.
Syntax#
Arguments#
| Argument | Required | Repeatable | Description |
|---|---|---|---|
<key> | Yes | No | Redis key targeted by the command. |
<start> | Yes | No | Start index; negative values count from the end. |
<stop> | Yes | No | Stop index, inclusive; negative values count from the end. |
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 bulk-string values |
| RESP3 | Array of bulk-string values |
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.