基于哈希槽的docker三主三从redis集群配置

目录

一、三主三从redis集群配置

1、关闭防火墙+启动docker后台服务

2、新建6个docker容器redis实例

3、进入容器redis-node-1为6台机器构建集群关系

3.1进入容器

3.2构建主从关系

4、查看集群状态

4.1链接进入6381作为切入点

二、主从容错切换迁移按例

1、数据读写存储(防止路由失效加-c参数)

2、查看集群信息

3、主6381和从机切换,先停止主机6381

4、还原之前的3主3从

三、主从扩容按例,四主四从

1、新建6387、6388两个节点,然后观察是否有8个节点。

2、进入6387容器实例内部,将新增的6387节点(空槽号)作为master节点加入原集群

3、重新分派槽号:

4、为主节点6387分配从节点6388

四、主从缩容案例(6387和6388下线)

1、先清除从节点6388,清出来的槽号重新分配,再删除6387,恢复三主三从。

2、删除6387

3、最后检查集群情况


一、三主三从redis集群配置

1、关闭防火墙+启动docker后台服务

systemctl stop firewalld
systemctl start docker

2、新建6个docker容器redis实例

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 6381docker 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 6382docker 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 6383docker 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 6384docker 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 6385docker 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

注解:

docker run 创建并运行docker容器实例 

--name redis-node-6   容器名字

--net host                        使用宿主机的IP和端口,默认

--privileged=true                获取宿主机root用户权限

-v /data/redis/share/redis-node-6:/data         容器卷,宿主机地址:docker内部地址

redis:6.0.8redis                镜像和版本号

--cluster-enabled yes                开启redis集群

--appendonly yes                开启持久化

--port 6386                        redis端口号

3、进入容器redis-node-1为6台机器构建集群关系

3.1进入容器

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

3.2构建主从关系

注意自己的真实ip地址
redis-cli --cluster create 192.168.80.171:6381 192.168.80.171:6382 192.168.80.171:6383 192.168.80.171:6384 192.168.80.171:6385 192.168.80.171:6386 --cluster-replicas 1--cluster-replicas 1表示为每一个master创建一个slave节点

4、查看集群状态

4.1链接进入6381作为切入点

redis-cli -p 6381
cluster info
cluster nodes

二、主从容错切换迁移按例

1、数据读写存储(防止路由失效加-c参数)

redis-cli -p 6381 -c

不加-c的时候

加-c的时候

2、查看集群信息

redis-cli --cluster check 192.168.80.171:6381

3、主6381和从机切换,先停止主机6381

docker stop redis-node-1

6381作为1号主机分配的从机以实际情况为准,具体是几号机器就是几号

再次查看集群信息

6381宕机了,6384上位成为了新的master。
备注:本次脑图笔记6381为主下面挂从6384。
每次案例下面挂的从机以实际情况为准,具体是几号机器就是几号

4、还原之前的3主3从

先启用6381

docker start redis-node-1

发现node1变成从了

再停止6384

docker stop redis-node-4

node1变成主了,node4宕机状态。

再启动6384

docker start redis-node-5

发现node1还是主,node4变成从了。

三、主从扩容按例,四主四从

1、新建6387、6388两个节点,然后观察是否有8个节点。

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 6387docker 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

2、进入6387容器实例内部,将新增的6387节点(空槽号)作为master节点加入原集群

docker exec -it redis-node-7 bash
[root@centos7-node1 ~]# docker exec -it redis-node-7 bash
root@centos7-node1:/data# redis-cli --cluster add-node 192.168.80.171:6387 192.168.80.171:6381

将新增的6387作为master节点加入集群
redis-cli --cluster add-node 自己实际IP地址:6387 自己实际IP地址:6381
6387 就是将要作为master新增节点
6381 就是原来集群节点里面的领路人,相当于6387拜拜6381的码头从而找到组织加入集群

检查集群情况第一次

3、重新分派槽号:

redis-cli --cluster reshard 192.168.80.171:6381

检查集群情况第2次

为什么6387是3个新的区间,以前的还是连续?
重新分配成本太高,所以前3家各自匀出来一部分,从6381/6382/6383三个旧节点分别匀出1364个坑位给新节点6387

4、为主节点6387分配从节点6388

root@centos7-node1:/data# redis-cli --cluster add-node 192.168.80.171:6388 192.168.80.171:6387 --cluster-slave --cluster-master-id c5bdc38d4edf816ea7e8e53fff8ba54d455ec81c命令:redis-cli --cluster add-node ip:新slave端口 ip:新master端口 --cluster-slave --cluster-master-id 新主机节点ID

检查集群情况第3次


四、主从缩容案例(6387和6388下线)

1、先清除从节点6388,清出来的槽号重新分配,再删除6387,恢复三主三从。

redis-cli --cluster del-node 192.168.80.171:6388 06bcca243eedfe3d20582dc8f06e795a5b384adb         redis-cli --cluster reshard 192.168.80.171:6381
#将6387的槽号清空,重新分配,本例将清出来的槽号都给6381

将6387的槽位全部分配给6381

检查集群情况第一次

输入4096个槽位都指给6381,它变成了8192个槽位,相当于全部都给6381了,不然要输入3次,一锅端

2、删除6387

redis-cli --cluster del-node 192.168.80.171:6387 c5bdc38d4edf816ea7e8e53fff8ba54d455ec81c

3、最后检查集群情况

最后恢复成三主三从了

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/577933.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

google浏览器网站不安全与网站的连接不安全怎么办?

使用google谷歌浏览器访问某些网站打开时google谷歌浏览器提示网站不安全,与网站的连接不安全,您之所以会看到此警告,是因为该网站不支持https造成的怎么办? 目录 1、打开谷歌google浏览器点击右上角【┇】找到设置

Tomcat一闪而过

步骤: 1.将startup.bat拖入命令行执行得:jre_home地址不正确,参考 2.环境变量中删除jre 3.再次执行,得:catalina_home未正确配置,配置参考 最后:发现jdk和tomcat版本不兼容,换成tom…

应用案例 | 复合机器人助力智能仓储物流实现高效发展

随着智能仓储物流技术的快速发展,复合机器人作为一种先进的自动化设备,正逐渐在仓储物流领域发挥重要作用。以下是一个复合机器人在智能仓储物流的应用案例。 案例背景 某大型电商企业面临着日益增长的订单量和仓储物流压力。为了提高物流效率、降低人力…

11-设计模式:Go常用设计模式概述

设计模式是啥呢?简单来说,就是将软件开发中需要重复性解决的编码场景,按最佳实践的方式抽象成一个模型,模型描述的解决方法就是设计模式。使用设计模式,可以使代码更易于理解,保证代码的重用性和可靠性。 …

基于Transformer的医学图像分类研究

医学图像分类目前面临的挑战 医学图像分类需要研究人员同时具备医学图像分析和数字图像的知识背景。由于图像尺度、数据格式和数据类别分布的影响,现有的模型方法,如传统的机器学习的识别方法和基于深度卷积神经网络的方法,取得的识别准确度…

车道线检测_Canny算子边缘检测_1

Canny算子边缘检测(原理) Canny算子边缘检测是一种经典的图像处理算法,由John F. Canny于1986年提出,用于精确、可靠地检测数字图像中的边缘特征。该算法设计时考虑了三个关键目标:低错误率(即尽可能多地检…

2核2G3M轻量应用服务器价格3.8元/月、50元1年、296元3年

京东云2核2G3M服务器价格3.8元/月、50元一年、296元3年,配置2C2G-40G SSD系统盘-3M带宽-200G月流量 华北-北京,京东云优惠活动 yunfuwuqiba.com/go/jd 活动链接打开如下图: 京东云2核2G3M服务器价格 京东云:轻量云主机CPU内存&…

【01-20】计算机网络基础知识(非常详细)从零基础入门到精通,看完这一篇就够了

【01-20】计算机网络基础知识(非常详细)从零基础入门到精通,看完这一篇就够了 以下是本文参考的资料 欢迎大家查收原版 本版本仅作个人笔记使用1、OSI 的七层模型分别是?各自的功能是什么?2、说一下一次完整的HTTP请求…

【爬虫开发】爬虫从0到1全知识md笔记第2篇:requests模块,知识点:【附代码文档】

爬虫开发从0到1全知识教程完整教程(附代码资料)主要内容讲述:爬虫课程概要,爬虫基础爬虫概述,,http协议复习。requests模块,requests模块1. requests模块介绍,2. response响应对象,3. requests模块发送请求,4. request…

财富池指标--通达信顾比均线实战指标免费源码

顾比均线是由两组均线构成,短期组为3、5、8、10、12、15。长期组为:30、35、40、45、50、60。顾比均线由澳大利亚的投资家戴若-顾比先生发明,因此叫顾比线。 顾比均线可以广泛运用于股票、期货和外汇交易中,只要是能运用K线图的投…

<QT基础(3)>QLineEdit使用笔记

LineEdit 这次要用的是两个功能:初始化展示参数值,修改参数值。 初始化 将l_num的默认值显示 ui.lineEdit->setText(QString::number(l_num));信号 textChanged() 文本发生改变textEdited() 文本编辑信号cursorPositionChanged()光标发…

KVM:尝试安装windows2008

最终目的是在lxd部署windows2008镜像 WindowsServer2008镜像: cn_windows_server_2008_r2_standard_enterprise_datacenter_and_web_with_sp1_x64_dvd_617598.iso 镜像参考链接: https://discussion.scottibyte.com/t/migrate-a-hyper-v-windows-vir…