当前位置:网站首页>Docker高级篇-Docker容器内Redis集群配置
Docker高级篇-Docker容器内Redis集群配置
2022-07-28 01:49:00 【小码哥呀】
Docker容器内Redis集群配置

1、三主三从集成配置
1.1、关闭防火墙、启动docker服务
systemcl start docker
1.2、新建6个docker容器实例
docker run -d --name redis-node-1 --net host --privileged=true -v /temp/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 /temp/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 /temp/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 /temp/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 /temp/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 /temp/redis/share/redis-node-6:/data redis --cluster-enabled yes --appendonly yes --port 6386



1.3、进入容器redis-node-1,构建主从关系
# 进入redis-node-1节点
docker exec -it redis-node-1 /bin/bash
# 构建主从关系,以下的ip可以在宿主主机上通过ifconfig查看(ens33)
redis-cli --cluster create 192.168.126.129:6381 192.168.126.129:6382 192.168.126.129:6383 192.168.126.129:6384 192.168.126.129:6385 192.168.126.129:6386 --cluster-replicas 1
- 实际操作





1.4、以redis-node-1为切入点,查看节点状态
redis-cli -p 6381
cluster info
cluster nodes



1.5、如果docker启动报错
只需要重新启动即可。
docker start 容器ID

1.6、redis集群读写路由增强正确案例
redis-cli -p 6381 -c
FLUSHALL

1.7、查看集群信息
redis-cli --cluster check 192.168.126.129:6381

1.8、主从容错切换迁移

- 先停止集群1(redis-node-1)
- 再次查看集群信息,发现节点1(redis-node-1)已经停止

- 启动6382节点,我们发现此时6382变成了master,原来6381由master变成了salve

- 再次启动redis-node-1,我们发现启动后的redis-node-1依然是slave,而redis-node-2是master
#启动redis-node-1
docker start redis-node-1
(
#停止redis-node-1的命令
docker stop redis-node-1
)
#查看集群状态
cluster nodes


1.9、主从扩容
- 新建6387、6388两个节点+新建后启动+查看是否有8个节点
docker run -d --name redis-node-7 --net host --privileged=true -v /temp/redis/share/redis-node-7:/data redis --cluster-enabled yes --appendonly yes --port 6387
docker run -d --name redis-node-8 --net host --privileged=true -v /temp/redis/share/redis-node-8:/data redis --cluster-enabled yes --appendonly yes --port 6388
docker ps

- 进入6387容器实例内部
docker exec -it redis-node-7 /bin/bash

- 将新增的6387节点作为master加入原集群
# 6381相当于6387的引路人,将6387推荐进入集群
redis-cli --cluster add-node 192.168.126.129:6387 192.168.126.129:6381



- 检查集群情况第1次
redis-cli --cluster check 192.168.126.129:6387

- 重新分派槽号
redis-cli --cluster reshard 192.168.126.129:6381



- 检查集群情况第2次
redis-cli --cluster check 192.168.126.129:6387

- 原来的三个主机都分出来相同的槽点数给新的主节点,并不是全部洗牌,重新分配

- 为主节点6387分配从节点6388
# redis-cli --cluster add-node 192.168.126.129:6388 192.168.126.129:6387 --cluster-slave --cluster-master-id 主节点7容器ID
redis-cli --cluster add-node 192.168.126.129:6388 192.168.126.129:6387 --cluster-slave --cluster-master-id a7e68cb432df591df220ad76700ea6bb43093ddc


- 检查集群情况第3次
redis-cli --cluster check 192.168.126.129:6388

1.10、主从缩容

-获取redis-node-7的容器ID
redis-cli --cluster check 192.168.126.129:6387
- 将6388删除
# redis-cli --cluster del-node 192.168.126.129:6388 容器ID
redis-cli --cluster del-node 192.168.126.129:6388 19ad55089a4443f5c17260311ab4ddc50d7981d2


- 检查集群情况第一次:只剩下7个节点

- 重新分配槽点,本案例中时将空余出来的槽点全部分配给节点1
redis-cli --cluster reshard 192.168.126.129:6381

- 检查集群情况第2次:6387的槽点数已全部分出,目前6387槽点数为0


- 将6387节点删除
redis-cli --cluster del-node 192.168.126.129:6387 容器ID


- 第三次检查集群情况,又变回了三主三从

边栏推荐
- 【TA-霜狼_may-《百人计划》】图形3.5 Early-z 和 Z-prepass
- Constant power wireless charging based on stm32
- Deep residual learning for image recognition shallow reading and Implementation
- Common SQL statement query
- CNN循环训练的解释 | PyTorch系列(二十二)
- 功能测试和非功能测试区别简析,上海好口碑软件测试公司推荐
- windbg
- 0 dynamic programming medium leetcode873. Length of the longest Fibonacci subsequence
- Pytorch optimizer settings
- Center Based 3D object detection and tracking (centerpoint) paper notes
猜你喜欢

Please, don't use the command line to configure MySQL master-slave replication. Isn't it fragrant to deploy with urlos interface?

Canonical Address

作业7.27 IO进程

基于FPGA的64位8级流水线加法器

【图像隐藏】基于DCT、DWT、LHA、LSB的数字图像信息隐藏系统含各类攻击和性能参数附matlab代码

mysql 如图所示,现有表a,表b,需求为 通过projectcode关联a、b表,查出address不同的 idcardnum。
![[self growth website collection]](/img/42/fa17c9167697543defd3e63a97237a.png)
[self growth website collection]
![[wechat applet development (VI)] draw the circular progress bar of the music player](/img/eb/9ce5d196970a6d6a887bf3e1d742ee.png)
[wechat applet development (VI)] draw the circular progress bar of the music player

【TA-霜狼_may-《百人计划》】图形3.7 移动端TP(D)R架构

Manual installation of Dlib Library
随机推荐
pytest最好的测试框架
Usage of delegate
树的孩子兄弟表示法
Achievements in science and Technology (XXVIII)
GBase8s如何在有外键关系的表中删除数据
QT implementation disable shortcut key
[wechat applet development (V)] the interface is intelligently configured according to the official version of the experience version of the development version
Consolidate the data foundation in the data center
Constant power wireless charging based on stm32
[wechat applet development (VI)] draw the circular progress bar of the music player
Red hat official announced the new president and CEO! Paul Cormier, a key figure in transformation, is "retiring"
JVM tuning -xms -xmx -xmn -xss
基于FPGA的64位8级流水线加法器
1313_pyserial的安装以及文档的生成
@Valid的作用(级联校验)以及常用约束注解的解释说明
Deep Residual Learning for Image Recognition浅读与实现
[brother hero's July training] day 26: check the collection
【软件测试】—— 自动化测试之unittest框架
Canonical Address
Introduction to the reduce() function in JS