Redis HKEYS in Golang (Detailed Guide w/ Code Examples)

Use Case(s)

The HKEYS command in Redis is used to retrieve all the keys present in a hash. Its common use cases are when there is a need to examine or iterate over the keys in a hash, especially:

  • When building debugging tools to inspect what's contained within a given hash.
  • To iterate over all keys in a hash for data processing or migration purposes.

Code Examples

In Golang, we can use the go-redis package to interact with Redis. Here's how you can use the HKeys function to get all keys from a hash:

package main import ( "fmt" "" "context" ) var ctx = context.Background() func main() { rdb := redis.NewClient(&redis.Options{ Addr: "localhost:6379", // use the appropriate address Password: "", // no password set DB: 0, // use default DB }) // Set a hash value err := rdb.HSet(ctx, "hashkey", "field1", "value1", "field2", "value2").Err() if err != nil { panic(err) } // Get all keys of the hash keys, err := rdb.HKeys(ctx, "hashkey").Result() if err != nil { panic(err) } fmt.Println(keys) // Output: [field1 field2] }

This example establishes a connection to Redis (adjust the Addr as needed), sets a hash with two fields (field1 and field2) to demonstrate, and then uses HKeys to retrieve all the keys in the hash.

Best Practices

  • Make sure to handle any errors returned by the HKeys function. Failing to do so might lead to unexpected behavior or crashes.
  • Be cautious when using HKEYS on large hashes as it may block the server for a long time if the hash contains many keys.

Common Mistakes

  • Not checking for an error after calling the HKeys function. It's important to always check for errors in Go to make sure the operation was successful.
  • Calling HKEYS on a key that is not a hash will return an error. Always validate that the key points to a hash before attempting to use HKEYS.


Q: Does HKEYS return fields in any particular order? A: No, the order of fields returned by HKEYS is not guaranteed.

Q: What happens if there are no fields in the hash? A: If the hash is empty or the key does not exist, HKEYS will return an empty list.

Was this content helpful?

Start building today

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