Getting Master Status in Node Redis (Detailed Guide w/ Code Examples)

Use Case(s)

In a Redis replication setup, it's common to need to know the status of the master node. This could be used for monitoring health and performance, debugging synchronization issues, or managing automated failovers.

Code Examples

Node.js does not provide a direct function to check the master status of a Redis server. However, you can use the INFO command which provides information about the Redis server including its role (master or slave).

Here is an example:

const redis = require('redis'); const client = redis.createClient();'Replication', function(err, reply) { const lines = reply.split('\r\n'); const roleLine = lines.find(line => line.startsWith('role')); console.log(roleLine); // Outputs: role:master or role:slave });

This script connects to the Redis server using redis.createClient(), then sends an INFO Replication command to the server. The response is parsed to find and output the server's role.

Best Practices

When using Node.js with Redis, it's important to handle errors and close connections properly. Be sure to listen for error events on your client objects and call quit when you're done with a client to avoid leaking resources.

Common Mistakes

One common mistake is not handling Redis connection errors, which can lead to unhandled exceptions in your application. Always attach an error handler to your Redis clients.


Q: How do I handle failovers in Node.js with Redis?

A: If you're using Sentinel or Cluster mode, the Node.js ioredis library supports automatic failover. For standalone servers, you will need to implement failover logic in your application.

Q: Can I use this method to get other information about the Redis server?

A: Yes, the INFO command returns a lot of information about the server including memory usage, CPU usage, client connections, and more. You can parse this information from the reply string as needed.

Was this content helpful?

Start building today

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