Introducing Dragonfly Cloud! Learn More

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

Use Case(s)

The XLEN command in Redis is used to get the length of a stream. This is particularly useful when you need to know the number of items stored in your stream for purposes like monitoring, debugging or maintaining optimal performance.

Code Examples

Here's how to use XLEN with Python's redis library:

import redis r = redis.Redis(host='localhost', port=6379, db=0) # Add elements to the stream r.xadd('mystream', {'field1': 'value1', 'field2': 'value2'}) r.xadd('mystream', {'field1': 'value3', 'field2': 'value4'}) # Get length of the stream length = r.xlen('mystream') print(length) # Output: 2

In this example, we first connect to our local Redis instance. We add two items to the 'mystream' stream using xadd. Then, we use xlen to retrieve the count of items present in the stream.

Best Practices

  • Before calling XLEN, make sure that the key provided refers to a stream not a different data type, as it will result in an error.
  • As XLEN provides the count of items in the stream, consider the potential size of your stream and handle large counts appropriately in your application logic.

Common Mistakes

  • A common mistake is to use XLEN on non-existing keys or keys referring to data types other than streams. The command will return 0 if the provided key does not exist, but will throw an error if the key exists but does not refer to a stream.
  • Another common mistake is neglecting error handling for cases when the server cannot be reached or responds with an error. Always make sure to incorporate appropriate error checking and recovery mechanisms in your code.


  1. What if I call XLEN on a non-existing key? The XLEN command will simply return 0.

  2. Can I use XLEN on other data types like sets or lists? No, the XLEN command is specific to Redis Streams. Using it on other data types will result in an error.

Was this content helpful?

Start building today 

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