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

Use Case(s)

Getting all keys from a Redis database is commonly used for caching, session management, and maintaining unique lists or sets among others. This operation can be helpful when you need to analyze or manipulate all keys in your Redis data store.

Code Examples

Consider using Do method of Redigo's Redis client in Golang.

import ( "" "fmt" ) func main() { conn, err := redis.Dial("tcp", "localhost:6379") if err != nil { fmt.Println(err) return } defer conn.Close() keys, err := redis.Strings(conn.Do("KEYS", "*")) if err != nil { fmt.Println(err) return } for _, key := range keys { fmt.Println(key) } }

The above example uses KEYS * Redis command which gets all keys in the Redis server. It then converts the results into a slice of strings.

Best Practices

When working with a large number of keys, consider using the SCAN command instead of the KEYS command, as KEYS could block the Redis server while it performs the operation.

Common Mistakes

Using the KEYS command in a production environment could lead to performance issues. It's better to use it for debugging purposes or when the total number of keys is small.


1. What if I only want to get keys that match a certain pattern? You can provide a pattern to the KEYS command like this: KEYS pattern*. This will return all keys starting with 'pattern'.

2. How can I handle errors when getting all keys? You should always check the error returned by the Do method and handle it appropriately.

Was this content helpful?

Start building today

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