扩容:
当前的3主3从增加到4主4从
1、启动扩容的主机和从机
docker run -d --name redis-node-7 --net host --privileged=true -v /data/redis/share/redis-node-7:/data redis:6.0.8 --cluster-enabled yes --appendonly yes --port 6387 docker run -d --name redis-node-8 --net host --privileged=true -v /data/redis/share/redis-node-8:/data redis:6.0.8 --cluster-enabled yes --appendonly yes --port 6388
2、进入6387,将6387添加到集群
redis-cli --cluster add-node 192.168.229.130:6387 192.168.229.130:6381
redis-cli --cluster check 192.168.229.130:6381 #查看节点信息
可以看到6387节点并未分配到槽位
3、重新分配槽位
redis-cli --cluster reshard 192.168.229.130:6381 #6381端口为集群领头
执行后:
第一个参数为每个节点分配的槽位数
第二个参数为新加入的节点的id
第三个参数为是否全部分配,选择all
6387分到的槽位为其他三个分一点出来的
4、配置6387的从机6388
redis-cli --cluster add-node 从机ip:端口 主机ip:端口 --cluster-slave --cluster-master-id 主节点的id
redis-cli --cluster add-node 192.168.229.130:6388 192.168.229.130:6387 --cluster-slave --cluster-master-id 68635b03964823270312fb3436d9742ca51b969e
缩容:
1、删除从机
redis-cli --cluster del-node 192.168.229.130:6388 eaf927938331d4e845e86e8d0fcd32d8d10a4bf7
2、重新分配槽位
redis-cli --cluster reshard 192.168.229.130:6381
第一个参数:移动的槽位数
第二个参数:接收方id
第三个参数:槽位来源方id,结束为done
3、删除6387节点
redis-cli --cluster del-node 192.168.229.130:6387 68635b03964823270312fb3436d9742ca51b969e
节点信息里面就不存在6388和6387,就实现了缩容



