关掉master节点后 slave节点会替代master节点
docker ps
docker exec -it redis-node-2 /bin/bash
redis-cli -p 6382 -c -a foobared
cluster nodes
主6381-从6385
主6382-从6386
主6383-从6384
docker stop redis-node-1
docker exec -it redis-node-2 /bin/bash
redis-cli -p 6382 -c -a foobared
cluster nodes
6381关闭 6385成为master节点
6381成为6385从节点
如果主节点设置了密码 从节点需要配置masterauth才能实现主从容错机制
docker run -d --name redis-node-7 --net host --privileged=true -v /usr/local/software/redis-cluster/config/redis-node-7/redis.conf:/etc/redis/conf/redis.conf -v /usr/local/software/redis-cluster/data/redis-node-7:/data redis:6.0.8 redis-server /etc/redis/conf/redis.conf
docker run -d --name redis-node-8 --net host --privileged=true -v /usr/local/software/redis-cluster/config/redis-node-8/redis.conf:/etc/redis/conf/redis.conf -v /usr/local/software/redis-cluster/data/redis-node-8:/data redis:6.0.8 redis-server /etc/redis/conf/redis.conf
docker exec -it redis-node-7 /bin/bash
redis-cli --cluster add-node 新增节点ip:6387 集群主节点ip:6381 -a 密码
redis-cli --cluster check ip:6381
此时尚未分配槽号
redis-cli --cluster reshard ip:6381
总槽数 16384/节点数 选择要分配的节点ID
分配之后的6387节点 是之前集群中三个节点均匀分配出来的1346个槽点合并
redis-cli --cluster add-node ip:新slave端口 ip:新master端口 --cluster-slave --cluster-master-id 新主机节点ID -a 密码
redis-cli --cluster del-node ip:从机端口 从机6388节点ID
redis-cli --cluster check ip:6381 -a 密码
redis-cli --cluster reshard ip:6381 -a 密码
填写要操作的槽号数量
接收的节点ID
来源ID
这里全部分配给了6381节点
查看节点信息 重新分槽成功
redis-cli --cluster check ip:6381
redis-cli --cluster del-node ip:从机端口 从机6387节点ID
docker stop redis-node-7 redis-node-8