Redis XREVRANGE in Python (Detailed Guide w/ Code Examples)

Use Case(s)

XREVRANGE is a Redis operation that allows you to retrieve items from a stream in reverse order, starting at the latest item. In Python, this operation can be particularly useful when you need to fetch the most recent entries from a stream, for instance, in applications such as event sourcing, message queuing, or logging.

Code Examples

Here's an example of how to use XREVRANGE with redis-py, a Python interface to Redis:

import redis r = redis.Redis() # Add some data to 'mystream' for i in range(10): r.xadd('mystream', {'field': 'value' + str(i)}) # Fetch the last 5 items from 'mystream' items = r.xrevrange('mystream', count=5) print(items)

This code first adds some test data into the stream named 'mystream'. Then, it uses xrevrange to fetch the latest 5 items from 'mystream'. The output will be the five most recent entries in reverse order.

Best Practices

When using XREVRANGE:

  • Be mindful of the amount of data you're retrieving to avoid memory issues. If you're dealing with large streams, consider using pagination by specifying a count.
  • Remember that the start and end IDs are inclusive. If you don't want the boundary values included, specify the next higher or lower ID accordingly.

Common Mistakes

A common mistake is not understanding the order of returned items. The XREVRANGE command returns items in reverse order, so the most recently added entry comes first.


Q: Can I use XREVRANGE to fetch items from multiple streams?

A: No, XREVRANGE only works with a single stream. If you need to fetch data from multiple streams, you will have to execute the command for each stream separately.

Was this content helpful?

Start building today

Dragonfly is fully compatible with the Redis ecosystem and requires no code changes to implement.