Registry / database / node-redis-failover

node-redis-failover

JSON →
library0.2.5jsnpmunverified

Deprecated Redis failover solution using ZooKeeper for automatic master/slave failover, read/write splitting, and custom sharding. Version 0.2.5 is the last release, with no updates since 2014. Requires ZooKeeper ensemble and Node >=0.8. Lacks modern features like Promises, TypeScript definitions, or Redis Cluster native support. Consider redis-sentinel or ioredis as alternatives.

npm install node-redis-failover
INSTALL
IMPORT
SIG · NODE-REDIS-FAILOVE
N
node-redis-failover
databasejavascriptv0.2.5
harness data pending
Install & Compatibility
Where this runs

No compatibility data collected yet for this library.

Code
Verified usage

Verified import paths — ran on the pinned version, not inferred.

default
const redisFailover = require('node-redis-failover');
import redisFailover from 'node-redis-failover';
Package is CommonJS-only; ES modules not supported.
createClient
const client = redisFailover.createClient(zookeeperConfig);
const client = require('node-redis-failover').createClient;
createClient is a synchronous factory method; no async initialization.
getClient
client.getClient('node_1', 'master');
client.getClient('node_1', 'slave', callback);
getClient does not support a callback; returns the client directly.

Shows how to create a failover client using ZooKeeper config, handle events, and perform basic operations on master and slave clients.

const redisFailover = require('node-redis-failover'); const zookeeper = { servers: process.env.ZOOKEEPER_SERVERS || '127.0.0.1:2181', chroot: '/myapp' }; const redis = redisFailover.createClient(zookeeper); redis.on('ready', () => { // Get master client for 'node_1' const master = redis.getClient('node_1', 'master'); if (master) { master.set('key', 'value', (err, reply) => { console.log('SET:', reply); master.get('key', (err, val) => { console.log('GET:', val); }); }); } // Get slave client const slave = redis.getClient('node_1', 'slave'); if (slave) { slave.get('key', (err, val) => { console.log('Slave GET:', val); }); } }); redis.on('error', (err) => { console.error('Redis error:', err); }); redis.on('change', (name, state) => { console.log('Node', name, 'state:', state); }); redis.on('masterChange', (name, newMaster) => { console.log('Master changed for', name, 'to', newMaster); });
Debug
Known issues
deprecatedPackage is unmaintained since 2014; last version 0.2.5.
fix
Migrate to redis-sentinel, ioredis, or redis with native clustering.
affects: >=0.0.0
breakingRequires ZooKeeper; no option to use Redis Sentinel or native replication.
fix
Use alternatives that support Redis Sentinel (ioredis, node-redis with sentinel).
affects: >=0.0.0
gotchagetClient('node_1') returns master by default; do not assume order of arguments.
fix
Always specify 'master' or 'slave' as second argument for clarity.
affects: >=0.0.0
gotchaPackage does not support Promises or async/await; all operations are callback-based.
fix
Use promisify or migrate to a modern Redis client.
affects: >=0.0.0
Errors
Common errors & fixes
Cannot find module 'zookeeper'
ZooKeeper native bindings not installed or missing npm dependencies.
fix
Run 'npm install zookeeper' and ensure node-gyp prerequisites are met.
TypeError: redis.getClient is not a function
Incorrect import; likely used default export as function instead of object.
fix
Use 'const redisFailover = require('node-redis-failover');' then 'redisFailover.createClient()'.
Upgrade
Version history
0.2.5latest on npm
Audit
Dependencies
zookeeperrequiredRequired for leader election and configuration management
Agent activity
4 hits · last 30 days
node
4
Resources
node-redis-failover — npm install node-redis-failover · libregistry