Use XREVRANGE to read the entries of a stream within a range of IDs, from the newest to the oldest.
It is XRANGE in reverse, and the bounds are given in reverse too: <end> comes before <start>, so XREVRANGE key + - walks the whole stream backwards. Incomplete IDs are completed the same way, ( makes a bound exclusive, and COUNT limits the number of entries.
XREVRANGE key + - COUNT 1 is the idiomatic way to read the most recent entry of a stream.
Syntax#
Arguments#
| Argument | Required | Repeatable | Description |
|---|---|---|---|
<key> | Yes | No | Redis key targeted by the command. |
<end> | Yes | No | Last ID to return, scanning backwards; - means the smallest possible ID. |
<start> | Yes | No | First ID to return, scanning backwards; + means the largest possible ID. |
COUNT <count> | No | No | Maximum number of entries to return. |
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 two-element entry arrays: ID and flat field/value array |
| RESP3 | Array of two-element entry arrays: ID and flat field/value array |
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.