Redis HVALS in Node.js (Detailed Guide w/ Code Examples)

Use Case(s)

The HVALS command in Redis is commonly used when you want to retrieve all the values in a hash key. In Node.js using Node Redis, this can be particularly useful when you need to process or analyze the data associated with a hash key without necessarily knowing or caring about the corresponding field names.

Code Examples

Suppose we have a hash key user:1001, representing a user in our application with various attributes stored as fields. If we want to fetch all the values of these fields, we would use HVALS.

Here's a basic example:

const redis = require('redis'); const client = redis.createClient(); client.on('connect', function() { console.log('Connected to Redis...'); }); let hashKey = 'user:1001'; client.hvals(hashKey, function(err, values) { if (err) throw err; console.log(values); // Prints array of values stored in the hash });

In this example, 'values' will be an array containing all the values stored in the hash of 'user:1001'. We connect to Redis, then execute the hvals command on the hashKey.

Best Practices

  • Use HVALS judiciously for larger hashes. This operation can be expensive for large hashes, as it returns all values stored in the hash.
  • While storing data, try to ensure that your fields and values are meaningfully related and grouped under appropriate keys. This way, when you fetch all values, they make sense even without the field names.

Common Mistakes

  • It's easy to confuse HVALS with HGETALL. But remember, HVALS only returns the values in the hash, while HGETALL returns all fields and their respective values.
  • Not handling or checking for errors when dealing with Redis operations can lead to unnoticed failures.


1. What if the hash key does not exist? If the hash key does not exist, HVALS will return an empty list.

2. Can I get all fields and values together using HVALS? No, HVALS only fetches the values. If you need both fields and values, use HGETALL.

Was this content helpful?

Start building today

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