Docker(十):Redis三主三从(扩容、缩容)

一:启动6台Redis

# privileged=true 获取宿主机root权限
# --cluster-enabled yes 开启redis集群
# --appendonly yes 开启持久化
docker run -d --name redis-node-1 
	--net host 
	--privileged=true 
	-v /data/redis/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/redis/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/redis/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/redis/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/redis/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/redis/share/redis-node-6:/data
	redis:6.0.8
	--cluster-enabled yes
	--appendonly yes
	--port 6386

二:配置主从关系

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

# --cluster-replicas 1 为每一个master分配一个slave,输入yes同一
# 每台master对应哪台slave是系统自动随机分配的,可能每次都不一样
redis-cli --cluster create 192.168.0.1:6381 192.168.0.1:6382 192.168.0.1:6383 192.168.0.1:6384 192.168.0.1:6385 192.168.0.1:6386 --cluster-replicas 1

# 检查集群情况
redis-cli --cluster check 192.168.0.1:6381

# 查看集群信息, -c: 表示集群方式连接
redis-cli -p 6381 -c
cluster info
cluster nodes
set k1 v1

三:扩展成四主四从

扩容的时候槽位点开始范围减小,结束范围不变,将每台开始的范围缩小给新的服务器。

docker run -d --name redis-node-7
	--net host 
	--privileged=true 
	-v /data/redis/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/redis/share/redis-node-8:/data
	redis:6.0.8
	--cluster-enabled yes
	--appendonly yes
	--port 6388
docker exec -it redis-node-7 /bin/bash

# 加入集群
redis-cli --cluster add-node 192.168.0.1:6387 192.168.0.1:6381

# 重新检查集群情况
redis-cli --cluster check 192.168.0.1:6381

# 重新分配槽号,输入4096,输入 6387对应的节点编号,输入all
redis-cli --cluster reshard 192.168.0.1:6381

# 重新检查集群情况, 槽位发生了变化
redis-cli --cluster check 192.168.0.1:6381

# 配置slave和master关系
redis-cli --cluster add-node 192.168.0.1:6388 192.168.0.1:6387 --cluster-slave --cluster-master-id 节点id(6387节点)

# 重新检查集群情况, 槽位发生了变化
redis-cli --cluster check 192.168.0.1:6381

四:缩容

  1. 先删除从节点 6388
# 删除节点
redis-cli --cluster del-node 192.168.0.1:6388 节点id

# 重新分配槽位,
# 输入4096, 
# 输入那个节点id来接收receiving4096,
# 输入source node: 6387的节点id
# 输入 done
redis-cli --cluster reshard 192.168.0.1:6381

# 重新检查集群情况, 槽位发生了变化
redis-cli --cluster check 192.168.0.1:6381

# 删除master
redis-cli --cluster del-node 192.168.0.1:6387 节点id

# 检查3主3从
redis-cli --cluster check 192.168.0.1:6381
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

风流 少年

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值