redis-leader
Version:
Leader election using redis
66 lines (35 loc) • 1.1 kB
Markdown
Redis leader
===========
Leader election backed by Redis
## Requirements
- Redis 2.6.12
## Install
```
npm install redis-leader
```
## Examples
```javascript
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](http://redis.io/commands/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/2` ms.
- If it fails or get revoked, it tries to get elected every `wait` ms.
## License
MIT