1、wget http://download.redis.io/redis-stable/redis.conf -O /home/zhangrenjie/redis/redis.conf
2、配置redis.conf
bind 0.0.0.0
requirepass 123456789
masterauth 123456789
开启集群配置
cluster-enabled yes
cluster-config-file nodes-6379.conf
cluster-node-timeout 15000
3、docker启动:
6个节点
sudo docker run -d --privileged=true -p 6000:6379 -v /home/zhangrenjie/redis/:/etc/redis/ --name redis-node-0 --restart=always redis:latest redis-server /etc/redis/redis.conf
sudo docker run -d --privileged=true -p 6001:6379 -v /home/zhangrenjie/redis/:/etc/redis/ --name redis-node-1 --restart=always redis:latest redis-server /etc/redis/redis.conf
sudo docker run -d --privileged=true -p 6002:6379 -v /home/zhangrenjie/redis/:/etc/redis/ --name redis-node-2 --restart=always redis:latest redis-server /etc/redis/redis.conf
sudo docker run -d --privileged=true -p 6003:6379 -v /home/zhangrenjie/redis/:/etc/redis/ --name redis-node-3 --restart=always redis:latest redis-server /etc/redis/redis.conf
sudo docker run -d --privileged=true -p 6004:6379 -v /home/zhangrenjie/redis/:/etc/redis/ --name redis-node-4 --restart=always redis:latest redis-server /etc/redis/redis.conf
sudo docker run -d --privileged=true -p 6005:6379 -v /home/zhangrenjie/redis/:/etc/redis/ --name redis-node-5 --restart=always redis:latest redis-server /etc/redis/redis.conf
sudo docker ps
sudo docker inspect ... | grep IPAddress(查看容器ip)
4、进入docker:
redis-cli
CLUSTER MEET 172.17.0.4 6379
CLUSTER MEET 172.17.0.5 6379
CLUSTER MEET 172.17.0.6 6379
CLUSTER MEET 172.17.0.7 6379
CLUSTER MEET 172.17.0.8 6379
CLUSTER MEET 172.17.0.9 6379
CLUSTER NODES
5、宿主安装redis-cli,写脚本addslots.sh:
#!/bin/bash
#将0-5461的槽点配置在172.17.0.4:6379(宿主机127.0.0.1:6000)的redis上
n=0
for ((i=n;i<=5461;i++))
do
redis-cli -h 127.0.0.1 -p 6000 -a 12345678 CLUSTER ADDSLOTS $i
done
#将5462-10922的槽点配置在172.17.0.5:6379(宿主机127.0.0.1:6001)的redis上
n=5462
for ((i=n;i<=10922;i++))
do
redis-cli -h 127.0.0.1 -p 6001 -a 12345678 CLUSTER ADDSLOTS $i
done
#将10923-16383的槽点配置在172.17.0.6:6379(宿主机127.0.0.1:6002)的redis上
n=10923
for ((i=n;i<=16383;i++))
do
redis-cli -h 127.0.0.1 -p 6002 -a 12345678 CLUSTER ADDSLOTS $i
done
运行脚本后,使用cluster info查看集群状态
6、宿主,运行脚本addSlaveNodes.sh:
#CLUSTER REPLICATE后面跟的是172.17.0.2:6379的集群ID
redis-cli -h 127.0.0.1 -p 6004 -a 12345678 CLUSTER REPLICATE 1e75fd2235dcbd5f5c68bfaa6f609ab9d0a084b2
#CLUSTER REPLICATE后面跟的是172.17.0.3:6379的集群ID
redis-cli -h 127.0.0.1 -p 6005 -a 12345678 CLUSTER REPLICATE e82e048b0892d3be931d24e066553020b791659c
#CLUSTER REPLICATE后面跟的是172.17.0.4:6379的集群ID
redis-cli -h 127.0.0.1 -p 6003 -a 12345678 CLUSTER REPLICATE bc94da253be868100b4c40328c36f13d8aa0eee0
7、进入docker:
cluster nodes
显示正确结果