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

Use Case(s)

Redis HSET command is used to set field in the hash stored at key to value. If key does not exist, a new key holding a hash is created. If field already exists in the hash, it is overwritten.

Some common use cases include:

  1. Storing object-like data: You can use HSET to store data that's structured like an object. This is ideal for representing entities like a user, with fields such as 'name', 'email', and 'password'.
  2. Caching database queries: You can cache the result of a complex database query in a hash and simply retrieve it using the key, reducing the load on your database.

Code Examples

To start using Redis in Node.js, we first need to install a package called ioredis which is a robust, full-featured Redis client that is used in the Node.js applications.

npm install ioredis

Here's an example of how you can use the HSET command in Node:

const Redis = require('ioredis'); const redis = new Redis(); async function setUser() { await redis.hset('user:100', 'name', 'John Doe', 'email', '', 'password', 'secret'); } setUser();

In this example, user:100 is the key, and we're creating three fields ('name', 'email', 'password') with their respective values.

Best Practices

  1. Always handle errors: Redis operations may fail due to various reasons. Always listen for error events or handle Promise rejections.
  2. Pick appropriate data types: Redis provides a variety of data types. Pick the one that suits your use case. A hash is a good fit for object-like data.

Common Mistakes

  1. Not checking if operation was successful: It's not enough to just fire off an HSET command. Always check the response to see if it was successful.
  2. Using inappropriate keys: Keys should be descriptive and follow a naming convention, which will make it easier to manage data.


Q: Can HSET create multiple fields at once? A: Yes, you can set multiple field-value pairs by supplying additional arguments to the HSET command in Node.js.

Q: Is it possible to update an existing field using HSET? A: Yes, if the field already exists in the hash stored at the specified key, its value will be overwritten.

Was this content helpful?

Start building today

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