Dockerd搭建redis三主三从扩容缩容
admin
2024-02-15 08:27:14

Dockerd搭建redis三主三从

1.创建六个redis容器
docker run -d --name redis-node-1 --net host --privileged=true -v /data/share/redis-node-1:/data redis:6.0.8 --cluster-enabled yes --appendonly yes --port 6381
docker run -d --name redis-node-2 --net host --privileged=true -v /data/share/redis-node-2:/data redis:6.0.8 --cluster-enabled yes --appendonly yes --port 6382
docker run -d --name redis-node-3 --net host --privileged=true -v /data/share/redis-node-3:/data redis:6.0.8 --cluster-enabled yes --appendonly yes --port 6383
docker run -d --name redis-node-4 --net host --privileged=true -v /data/share/redis-node-4:/data redis:6.0.8 --cluster-enabled yes --appendonly yes --port 6384
docker run -d --name redis-node-5 --net host --privileged=true -v /data/share/redis-node-5:/data redis:6.0.8 --cluster-enabled yes --appendonly yes --port 6385
docker run -d --name redis-node-6 --net host --privileged=true -v /data/share/redis-node-6:/data redis:6.0.8 --cluster-enabled yes --appendonly yes --port 6386
2.进入容器构建主从关系
docker exec -it redis-node-1 /bin/bash
redis-cli --cluster create 172.31.20.134:6381 172.31.20.134:6382 172.31.20.134:6383 172.31.20.134:6384 172.31.20.134:6385 172.31.20.134:6386 --cluster-replicas 1

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

3.查看集群状态
redis-cli -p 6381
CLUSTER info
CLUSTER NODES
redis-cli --cluster check 172.31.20.134:6381
4.集群连接
redis-cli -p 6381 -c

扩容

5.新建主机节点
docker run -d --name redis-node-7 --net host --privileged=true -v /data/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/share/redis-node-8:/data redis:6.0.8 --cluster-enabled yes --appendonly yes --port 6388
6.将新增节点加入集群
docker exec -it  redis-node-7 /bin/bash
redis-cli --cluster add-node 172.31.20.134:6387 172.31.20.134:6381

#172.31.20.134:6381 原集群的节点

7.重新分配槽号
redis-cli --cluster reshard 172.31.20.134:6381
4096
52a4a9f3f53eb2a18cd664fa9ecc8cca5e930d6c
all
yes

#(16384/4=4096四主)

8.为主节点6387分配从节点6388
redis-cli --cluster add-node 172.31.20.134:6388 172.31.20.134:6387 --cluster-slave --cluster-master-id 52a4a9f3f53eb2a18cd664fa9ecc8cca5e930d6c

#ip:新slave端口 ip:新master端口 --cluster-slave --cluster-master-id新主机节点ID
查看集群状态

缩容

9.从集群删除从节点6388
redis-cli --cluster del-node 172.31.20.134:6388 ba6051df75334ba3e64f79aae02d411ed4e2a9c5

#最后为从节点ID

10.将主节点6387槽号清空,重新分配,本例将清出来的槽号都给6381
redis-cli --cluster reshard 172.31.20.134:6381
a6fe7315c2e05396c9182de54e12afa0b323f934
#接收节点槽号ID
52a4a9f3f53eb2a18cd664fa9ecc8cca5e930d6c
#释放节点的槽号ID
done
yes
11.删除主节点6387
redis-cli --cluster del-node 172.31.20.134:6387 52a4a9f3f53eb2a18cd664fa9ecc8cca5e930d6c

##最后为主节点ID

知识来源于大佬zzyybs@126.com

相关内容

热门资讯

从山海古城到青春乐场,日照的滨... 中新网日照11月19日电(记者 左宇坤)深秋时节,山东日照莒县浮来山上的“天下银杏第一树”迎来一年中...
重构温泉体验:项目实践与发展路... 传统温泉同质化、体验形式单一的问题日益凸显,难以满足当下游客对个性化、沉浸式、多功能消费的需求。随着...
原创 非... 面对急需帮助的人,我们会先选择帮助,还是先拍照呢?如果这是发生在10年前,肯定不用多想,大家一定会第...
原创 非... 茶馓又名油面、馓子,是江苏知名传统点心,其中以淮安茶馓最富胜名。 01 追溯历史 淮安茶馓起源于战国...