ruster - a simple Redis Cluster Administration tool
Control your Redis Cluster from the command line.
Usage
ruster relies on redic, the lightweight Redis client. It
currently allows to create a cluster, add and remove nodes, and
execute a command in all nodes in a cluster.
Create a cluster
$ ruster create ip:port [ip:port...]
Creates a cluster with all the indicated nodes, and automatically shards Redis Cluster 16,384 slots evenly among all of them.
Add a node
$ ruster add cluster_ip:port ip:port
Adds ip:port to the cluster. cluster_ip:port must be one of the
nodes that are already part of the cluster.
Remove a node
$ ruster remove cluster_ip:port ip:port
Removes ip:port from the cluster. cluster_ip:port must be one of the
nodes that are already part of the cluster. The only requirement is
that ip:port isn't the same as cluster_ip:port.
NOTE: removing a node that has slots assigned leaves the cluster in a broken state. These slots should be resharded before removing the node.
Execute a command in all nodes
$ ruster call ip:port [CMD ...]
Executes the Redis command in all nodes, displaying it's result in STDOUT.
Reshard
$ ruster reshard cluster_ip:port slots target_ip:port source_ip:port [...]
Reshards the cluster at cluster_ip:port, by moving slots slots
from several source_ip:port to target_ip:port.
TODO
- documentation
- resharding
- add interactive interface
- add REPL?
- fix cluster
- check cluster state
- cluster information
- ASSERTIONS
Thanks
This work wouldn't have been possible without @antirez awesome work on Redis, and @soveran and @cyx for their super lightweight Redis client.
Thank you to my dear friends @lucasefe, @pote and @elcuervo, who joined the conversation on Twitter while I was looking for a name.
Also, I'd like to thank to Eruca Sativa and Cirse for the music that's currently blasting my speakers while I write this.