简单留存一下
# 创建6个redis容器
docker run -v E:\docker\redis\cluster\redis-node-1\data:/data --privileged=true --net host --name redis-node-1 -d redis:6.0.8 --cluster-enabled yes --appendonly yes --port 6381
docker run -v E:\docker\redis\cluster\redis-node-2\data:/data --privileged=true --net host --name redis-node-2 -d redis:6.0.8 --cluster-enabled yes --appendonly yes --port 6382
docker run -v E:\docker\redis\cluster\redis-node-3\data:/data --privileged=true --net host --name redis-node-3 -d redis:6.0.8 --cluster-enabled yes --appendonly yes --port 6383
docker run -v E:\docker\redis\cluster\redis-node-4\data:/data --privileged=true --net host --name redis-node-4 -d redis:6.0.8 --cluster-enabled yes --appendonly yes --port 6384
docker run -v E:\docker\redis\cluster\redis-node-5\data:/data --privileged=true --net host --name redis-node-5 -d redis:6.0.8 --cluster-enabled yes --appendonly yes --port 6385
docker run -v E:\docker\redis\cluster\redis-node-6\data:/data --privileged=true --net host --name redis-node-6 -d redis:6.0.8 --cluster-enabled yes --appendonly yes --port 6386
# 进入任一容器内部建立集群关系
redis-cli --cluster create 192.168.0.102:6381 192.168.0.102:6382 192.168.0.102:6383 192.168.0.102:6384 192.168.0.102:6385 192.168.0.102:6386 --cluster-replicas 1
# --cluster-replicas 1 表示为每个master创建一个slave节点
#redis集群扩容
# 启动两台redis容器
docker run -v E:\docker\redis\cluster\redis-node-7\data:/data --privileged=true --net host --name redis-node-7 -d redis:6.0.8 --cluster-enabled yes --appendonly yes --port 6387
docker run -v E:\docker\redis\cluster\redis-node-8\data:/data --privileged=true --net host --name redis-node-8 -d redis:6.0.8 --cluster-enabled yes --appendonly yes --port 6388
# 添加一个新的主节点
redis-cli --cluster add-node 127.0.0.1:6387 127.0.0.1:6381
#检查集群状态
redis-cli --cluster check 127.0.0.1:6381
#重新分配槽位
redis-cli --cluster reshard 127.0.0.1:6381
#将新的从节点挂到新的主节点下,将6388挂在6387下,master-id根据实际6387的id
redis-cli --cluster add-node 127.0.0.1:6388 127.0.0.1:6387 --cluster-slave --cluster-master-id db928fbb830a79bd528a7cff1fb26658dd7d0a36
#redis集群缩容
# 先删除从节点
redis-cli --cluster del-node 127.0.0.1:6388 0edcc67272be81aed32c33bcb8b6c1eba2149509
# 重新分配槽位
redis-cli --cluster reshard 127.0.0.1:6381
# 最后删除主节点
redis-cli --cluster del-node 127.0.0.1:6387 db928fbb830a79bd528a7cff1fb26658dd7d0a36
有两个问题目前没解决:
1.建立集群关系时,使用本机的IP无法提示无法连接,更换为127.0.0.1才可以
2.集群无法自动容错,当一个主节点停掉时,其从节点无法自动成长为主节点(重点解决)