simple redis server base etcd raft lib
First start a single-member cluster of raftexample:
raft-redis --id 1 --cluster http://127.0.0.1:12379 --port 6389
Next, store a value ("hello") to a key ("key") use redis-cli:
redis-cli -p 6389 set key hello
Finally, retrieve the stored key:
redis-cli -p 6389 get key
First install goreman, which manages Procfile-based applications.
The Procfile script will set up a local example cluster. Start it with:
goreman start
This will bring up three raft-redis instances.
Nodes can be added to or removed from a running cluster using redis command-line client.
For example, suppose we have a 3-node cluster that was started with the commands:
raftexample --id 1 --cluster http://127.0.0.1:12379,http://127.0.0.1:22379,http://127.0.0.1:32379 --port 6389
raftexample --id 2 --cluster http://127.0.0.1:12379,http://127.0.0.1:22379,http://127.0.0.1:32379 --port 6399
raftexample --id 3 --cluster http://127.0.0.1:12379,http://127.0.0.1:22379,http://127.0.0.1:32379 --port 6169
A fourth node with ID 4 can be added by useing a addnode request :
redis-cli -p 6389 addnode 4 http://127.0.0.1:42379
Then the new node can be started as the others were, using the --join option:
raft-redis --id 4 --cluster http://127.0.0.1:12379,http://127.0.0.1:22379,http://127.0.0.1:32379,http://127.0.0.1:42379 --port 6059 --join
The new node should join the cluster and be able to service redis client requests.
We can remove a node using a removenode request:
redis-cli -p 6389 removenode 4 http://127.0.0.1:42379
Node 3 should shut itself down once the cluster has processed this request.