Redis Get All Keys in Python (Detailed Guide w/ Code Examples)

Use Case(s)

  1. Enumerating all keys in a Redis database in Python is useful for debugging, administration, and maintenance tasks.

  2. It's also used when you want to perform operations on all keys or a subset of keys in the datastore.

Code Examples

Here's how to get all keys from a Redis database using python's redis package:

import redis r = redis.Redis(host='localhost', port=6379, db=0) for key in r.scan_iter(): print(key)

In this code snippet, we're connecting to the Redis server, then using the scan_iter() function to iteratively access each key in the database. Each key is printed to the console.

Best Practices

  1. The command 'KEYS *' can also retrieve all keys, but it may lead to performance issues in a production environment due to its blocking nature. It's recommended to use the scan_iter() method for such cases as it doesn't block the server.

Common Mistakes

  1. Using 'KEYS *' in a production environment - This command blocks the server while it executes, which can have serious performance implications if your dataset is large.


  1. *Why should I avoid 'KEYS '? 'KEYS *' is a blocking operation that can cause performance issues especially with larger datasets. Use scan_iter() instead which is non-blocking.

  2. Can I filter keys when retrieving them? Yes, you can use pattern matching inside scan_iter(). For example, scan_iter('user:*') will return all keys that start with 'user:'.

Was this content helpful?

Start building today

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