A redis failover solution based on ZooKeeper for Node.js
Architecture chart:
Features
- Automatic master/slave failover
- Read/Write Splitting
- All components high availability
- Support cluster
- Custom sharding router
Installation
Install with npm:
npm install -g node-redis-failover
Usage
Start redis watcher
redis-failover -h Usage: redis-failover -c config.json Options: -h, --help output usage information -V, --version output the version number -c, --config [path] Path to JSON config file
start a redis watcher (we recommend the watchers' count should be an odd number, and more than 3):
redis-failover -c config.json
with a config file config.json
(config json file support comments use json-comments):
// zookeeper "zooKeeper": "servers": "127.0.0.1:2181,127.0.0.1:2182,127.0.0.1:2183" "chroot": "/test" //"username": "abssd", //"password": 'asdfefe' // redis cluster nodes "nodes": "name": "node_1" "servers": "127.0.0.1:6379,127.0.0.1:6479" // redis password "password": "abc123" // redis ping timeout default 6000 ms "pingTimeout": 4000 // redis ping interval(ms). default 3000 ms "pingInterval": 1000 // the maxFailures for the redis. default 3 "maxFailures": 5 "name": "node_2" "servers": "127.0.0.1:7000,127.0.0.1:7001" // log path "log": "logs/" // pid file "pid": "a.pid"
start a watcher:
redis-failover -c config.json
start with forever
forever start -m 10 redis-failover -c config.json
Use redis in your application
install:
npm install node-redis-failover --save
example code:
var redisFailover = ; var zookeeper = servers: '192.168.1.1:2181,192.168.1.2:2181,192.168.1.3:2181' chroot: '/appName'; var redis = redisFailover; redis; redis; redis; redis;
License
(The MIT License)
Copyright (c) 2014 Johnny Wong wzhao23@gmail.com