Skip to content

Instantly share code, notes, and snippets.

@maiha
Created June 15, 2016 08:06
Show Gist options
  • Save maiha/7f45222bc2de098a555fe1e153eccc3f to your computer and use it in GitHub Desktop.
Save maiha/7f45222bc2de098a555fe1e153eccc3f to your computer and use it in GitHub Desktop.
Study for redis-cluster on docker
# redis cluster ports
alias rc='for x in `seq 7001 7003`'
# create template
cat > redis.conf
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
^D
# additional setting
rc; echo "cluster-require-full-coverage no" >> v/$x/redis.conf
# create redis.conf for cluster nodes
rc; mkdir -p v/$x
rc; cp redis.conf v/$x/
rc; echo "port $x" >> v/$x/redis.conf
rc; cat v/$x/redis.conf
# create cluster nodes on container
rc; docker create --name rc$x --volume $(pwd)/v/$x:/data/conf --net host redis:3 redis-server /data/conf/redis.conf
# start dockers
rc; docker start rc$x
# info
rc; docker exec rc$x redis-cli -p $x cluster nodes
docker exec rc7001 redis-cli -p 7001 cluster nodes
# build cluster for slots
docker exec rc7001 redis-cli -p 7001 cluster addslots {0..5500}
docker exec rc7002 redis-cli -p 7002 cluster addslots {5501..11000}
docker exec rc7003 redis-cli -p 7003 cluster addslots {11001..16383}
docker exec rc7002 redis-cli -p 7002 cluster meet 127.0.0.1 7001
docker exec rc7003 redis-cli -p 7003 cluster meet 127.0.0.1 7001
# standalone node
docker exec rc7001 redis-cli -p 7001 cluster addslots {0..16383}
# stop dockers
rc; docker stop rc$x
rc; docker rm rc$x
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment