docker 启动 redis集群

 docker run -d --name redis-node-1 --net host --privileged=true -v /var/docker/redis/share/redis-node-1:/data redis --cluster-enabled yes --appendonly yes --port 6381

 docker run -d --name redis-node-2 --net host --privileged=true -v /var/docker/redis/share/redis-node-2:/data redis --cluster-enabled yes --appendonly yes --port 6382

 docker run -d --name redis-node-3 --net host --privileged=true -v /var/docker/redis/share/redis-node-3:/data redis --cluster-enabled yes --appendonly yes --port 6383

 docker run -d --name redis-node-4 --net host --privileged=true -v /var/docker/redis/share/redis-node-4:/data redis --cluster-enabled yes --appendonly yes --port 6384

 docker run -d --name redis-node-5 --net host --privileged=true -v /var/docker/redis/share/redis-node-5:/data redis --cluster-enabled yes --appendonly yes --port 6385

 docker run -d --name redis-node-6 --net host --privileged=true -v /var/docker/redis/share/redis-node-6:/data redis --cluster-enabled yes --appendonly yes --port 6386

说明:

--net 使用宿主机的ip和端口, 默认

--privileged=true 获取宿主机root用户权限

--cluster-enabled yes 开启redis集群

--appendonly yes 开启持久化

--port 6386 redis端口号

 

docker exec -it redis-node-1 /bin/bash

redis-cli --cluster create 10.0.0.3:6381 10.0.0.3:6382 10.0.0.3:6383 10.0.0.3:6384 10.0.0.3:638\5 10.0.0.3:6386 --cluster-replicas 1

说明

--cluster=replicas 1 表示为每个master创建一个slave节点

查看集群状态

redis-cli -p 6381

cluster info

cluster nodes

 

redis-cli -p 6381 -c  

防止路由失效加参数 -c 并新增两个key

 

redis-cli --cluster check 10.0.0.3:6381

 

主从容错切换迁移

 

主从扩容

redis-cli --cluster add-node 10.0.0.3:6387 10.0.0.3:6381

6387是要作为master新增节点

6381是原来集群节点里面的领路人

重新分派槽号

redis-cli --cluster reshared 10.0.0.3:6381

redis-cli --cluster add-node 10.0.0.3:6388 10.0.0.3:6387 --cluster-slave --cluster-master-id xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

主从缩容

redis-cli --cluster del-node 10.0.0.3:6388 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

redis-cli --cluster reshared 10.0.0.3:6381

redis-cli --cluster del-node 10.0.0.3:6387 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

redis-cli --cluster check 10.0.0.3:6381

 

 

docker run -d -p 6379:6379 --name redis --privileged=true -v /var/docker/redis/redis.conf:/etc/redis/redis.conf -v /var/docker/data:/data redis redis-server /etc/redis/redis.conf

posted @ 2022-07-06 12:31  stone8386  阅读(486)  评论(0编辑  收藏  举报