redis-leader
redis-leader copied to clipboard
Leader election with redis
trafficstars
Redis leader
Leader election backed by Redis
Requirements
- Redis 2.6.12
Install
npm install redis-leader
Examples
var Leader = require('redis-leader');
API
new Leader(redis, options)
Create a new Leader
redis is a string key identifying the lock
options
ttl Lock time to live in milliseconds (will be automatically released after that time)
wait Time between 2 tries getting elected (ms)
stop (callback)
Release the lock for others.
isLeader (callback)
Tells if he got elected.
callback(err, true/false)
Events
elected when your candidate become leader
revoked when your leader got revoked from his leadership
error when an error occurred, best is to exit your process
How it works
It uses setnx command to try to set a semaphore with the ttl given in options.
- If it succeeds, it gets elected and will renew the semaphore every
ttl/2ms. - If it fails or get revoked, it tries to get elected every
waitms.
License
MIT