Redis HGET in PHP (Detailed Guide w/ Code Examples)

Use Case(s)

The HGET command in Redis is commonly used when you need to retrieve a specific field from a hash stored in the database. In PHP this can be particularly useful when storing and retrieving associative arrays or complex data structures.

Code Examples

Let's assume we have a user profile stored as a hash in Redis. The user has fields like name, email, and age.

Here's how you would use HGET with the PHPRedis extension to get the name:

$redis = new Redis(); $redis->connect('localhost', 6379); $name = $redis->hGet('user:1', 'name'); echo $name; // Outputs the name of the user

In this example, user:1 is the key for our hash, and name is the field we want to retrieve. If the field exists, its value will be returned, otherwise NULL will be returned.

Best Practices

  1. To improve performance, consider using the hMGet function if you need to retrieve multiple fields at once instead of calling hGet multiple times.

  2. Always handle the possibility of NULL being returned, for instance, when the hash or the field doesn't exist.

Common Mistakes

  1. Forgetting that Redis is case sensitive, so 'Name' and 'name' would be considered two different fields.

  2. Assuming that the hGet function will return an error or exception if the field does not exist. It actually returns NULL.


Q: Can I use hGet with non-string values?

A: Yes, hGet can retrieve any data type stored in a hash, but it will be returned as a string. If you've stored a serialized object or array, you'll need to unserialize it after retrieval.

Q: What happens if the hash or the field doesn't exist?

A: The hGet command returns NULL if either the hash or the field does not exist.

Was this content helpful?

Start building today

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