Volatile redis clustering implementation
npm install volatile-redis-clusterThis is a software implementation of a redis cluster where the data on the slave nodes does not
need to be persistent. The architecture requires a single master redis node (which is used to
track and coordinate the slaves) and any number of slave nodes which actually store the data.
By default, no sharded data is stored on the master; it serves only to track the current list
of slaves.
Start the master (coordinator) redis server via the OS's normal means. Then run node ./lib/coordinator.js
on localhost (you can also run the coordinator process on a separate server, and supply '-h HOST -p PORT' to
point it to the actual master redis instance). The coordinator process connects to the master redis server
and uses it for temporary data storage.
After the master is running, start the slave servers. Each slave server also has both a redis instance, and
a node process the coordinates it. To run a slave, start the slave server, then run node ./lib/slave.js .
You may need to supply options to the slave node process:
```
-h
-p
-w
-H
-P
There are also some bash scripts provided to help:
This will start the coordinator node process and connect to an already-running redis instance on localhost
with the default port. It will run in the background.
Does what it says on the tin.
This will start BOTH the redis processes AND the node processes for the slaves. By default, it will
start as many processes are there are cores on the machine. It instantiates the redis instances
using custom configs in the current working directory.
This reads configuration in ./scripts/slave-config.sh and ./scripts/slave-redis.conf-template .
Does what it says on the tin.
`js``
var ClusterClient = require('volatilerediscluster');
var clusterClient = new ClusterClient({
host: / Master Redis Host /,
port: / Master Redis Port /
});
clusterClient.getShardClient('my:redis:key', function(err, redis) {
if (err) ...
redis.get('my:redis:key', ...)
});