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
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
4、查看集群信息、节点信息
1、随意进入某个节点,如:
redis-cli -p 6381
2、cluster info
3、cluster nodes
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
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的方式】
redis-cli --cluster reshard 宿主机IP:6381
备注:端口只要是主服务的端口都可以
7.3、删除主服务6389
redis-cli --cluster del-node 宿主机IP:6389 主服务ID(6389的ID)
标签:node,cluster,--,宿主机,redis,二十九,docker,yes
From: https://www.cnblogs.com/xiaonuanxin/p/17652158.html