随笔(二十九)『docker 3主3从redis配置 』

1、拉取镜像

docker pull redis:6.0.8

2、创建并启动容器

docker run -d --name redis-node-1 --net host --privileged=true -v /mydata/redis/redis-node-1/data:/data redis:6.0.8 --cluster-enabled yes --appendonly yes --port 6381
docker run -d --name redis-node-2 --net host --privileged=true -v /mydata/redis/redis-node-2/data:/data redis:6.0.8 --cluster-enabled yes --appendonly yes --port 6382
docker run -d --name redis-node-3 --net host --privileged=true -v /mydata/redis/redis-node-3/data:/data redis:6.0.8 --cluster-enabled yes --appendonly yes --port 6383
docker run -d --name redis-node-4 --net host --privileged=true -v /mydata/redis/redis-node-4/data:/data redis:6.0.8 --cluster-enabled yes --appendonly yes --port 6384
docker run -d --name redis-node-5 --net host --privileged=true -v /mydata/redis/redis-node-5/data:/data redis:6.0.8 --cluster-enabled yes --appendonly yes --port 6385
docker run -d --name redis-node-6 --net host --privileged=true -v /mydata/redis/redis-node-6/data:/data redis:6.0.8 --cluster-enabled yes --appendonly yes --port 6386

image

3、构建主从关系

1、随意进入某个容器,如:
docker exec -it redis-node-6 /bin/bash

2、redis-cli --cluster create 宿主机IP:6381 宿主机IP:6382 宿主机IP:6383 宿主机IP:6384 宿主机IP:6385 宿主机IP:6386 --cluster-replicas 1

image

4、查看集群信息、节点信息

1、随意进入某个节点,如:
redis-cli -p 6381

2、cluster info

3、cluster nodes

image

5、查看集群情况

redis-cli --cluster check 宿主机IP:6381

6、主从扩容

6.1、创建启动6387、6388两台容器

docker run -d --name redis-node-7 --net host --privileged=true -v /mydata/redis/redis-node-7/data:/data redis:6.0.8 --cluster-enabled yes --appendonly yes --port 6387
docker run -d --name redis-node-8 --net host --privileged=true -v /mydata/redis/redis-node-8/data:/data redis:6.0.8 --cluster-enabled yes --appendonly yes --port 6388

image

6.2、进入6387

docker exec -it redis-node-7 bash

6.3、将6387作为主服务

redis-cli --cluster add-node 宿主机IP:6387 宿主机IP:6381

6.4、分配槽位 16384/4(总槽位/总主服务数) = 4096

redis-cli --cluster reshard 宿主机IP:6381

6.5、配置从服务6388

redis-cli --cluster add-node 宿主机IP:6388 宿主机IP:6387 --cluster-slave --cluster-master-id 主服务ID(6387的ID)

7、主从缩容

7.1、先删除从服务6390

redis-cli --cluster del-node 宿主机IP:6390 从服务ID(6390的ID)

7.2、分配槽位 16384/5(总槽位/总主服务数) = 3277【采用全部槽位分给6381的方式】

image

redis-cli --cluster reshard 宿主机IP:6381 
备注:端口只要是主服务的端口都可以

image

7.3、删除主服务6389

redis-cli --cluster del-node 宿主机IP:6389 主服务ID(6389的ID)
posted @   小昕昕  阅读(11)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
点击右上角即可分享
微信分享提示