Docker的3主3从redis集群配置(扩容和缩容配置)

3主3从redis集群配置

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

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

如果运行成功,效果如下:
在这里插入图片描述
命令分步解释

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.8
redis镜像和版本号
--cluster-enabled yes
开启redis集群
--appendonly yes
开启持久化
--port 6386
redis端口号

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

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

构建主从关系
//注意,进入docker容器后才能执行一下命令,且注意自己的真实IP地址
redis-cli --cluster create 192.168.xx.xx:6381 192.168.xx.xx:6382 192.168.xx.xx:6383 192.168.xx.xx:6384 192.168.xx.xx:6385 192.168.xx.xx:6386 --cluster-replicas 1

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

![在这里插入图片描述](https://img-blog.csdnimg.cn/614d875badab469c9168ae1437e058e8.png

·

一切OK的话,3主3从搞定

4、链接进入6381作为切入点,查看集群状态
·链接进入6381作为切入点,查看节点状态

cluster info

在这里插入图片描述

·cluster nodes

![在这里插入图片描述](https://img-blog.csdnimg.cn/70b85e4844a34f958d59210fff9b05ac.png

·主从容错切换迁移案例

·1、数据读写存储
·启动6机构成的集群并通过exec进入
·对6381新增两个key
·防止路由失效加参数-c并新增两个key
在这里插入图片描述

加入参数-c,优化路由

·查看集群信息

redis-cli --cluster check 192.168.xx.xx:6381

![在这里插入图片描述](https://img-blog.csdnimg.cn/c093074685164912a9259e1fec95145a.png

![在这里插入图片描述](https://img-blog.csdnimg.cn/b45517b1b09248e49d23bc4954ceff37.png

·2、容错切换迁移
·主6381和从机切换,先停止主机6381
·6381主机停了,对应的真实从机上位
·6381作为1号主机分配的从机以实际情况为准,具体是几号机器就是几号
·再次查看集群信息
![在这里插入图片描述](https://img-blog.csdnimg.cn/3ba293441eef47738e54af2bcb11a746.png

·先还原之前的3主3从

在这里插入图片描述

中间需要等待一会儿,docker集群重新响应。

先启6381
docker start redis-node-1
再停6385
docker stop redis-node-5
再启6385
docker start redis-node-5

·主从机器分配情况以实际情况为准
·查看集群状态

redis-cli --cluster check 自己IP:6381

主从扩容案例(3主3从-----》4主4从)

·新建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 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 ps

进入6387容器实例内部

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

将新增的6387节点(空槽号)作为master节点加入原集群

将新增的6387作为master节点加入集群

redis-cli --cluster add-node 自己实际IP地址:6387 自己实际IP地址:6381

6387 就是将要作为master新增节点
6381 就是原来集群节点里面的领路人,相当于6387拜拜6381的码头从而找到组织加入集群
![在这里插入图片描述](https://img-blog.csdnimg.cn/cdadc5e2c81c4e3391f81583fc36b007.png

·检查集群情况第1次

redis-cli --cluster check 真实ip地址:6381

![在这里插入图片描述](https://img-blog.csdnimg.cn/474ed76869c748adb5a90cf85ae53a0e.png

·重新分派槽号
重新分派槽号
命令:
redis-cli --cluster reshard IP地址:端口号

redis-cli --cluster reshard 192.168.xx.xx:6381

在这里插入图片描述

·检查集群情况第2次

redis-cli --cluster check 真实ip地址:6381

![在这里插入图片描述](https://img-blog.csdnimg.cn/1f8780ecec44472387ab6b22b8ee4970.png

·槽号分派说明

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

·为主节点6387分配从节点6388

命令:`

redis-cli --cluster add-node ip:新slave端口 ip:新master端口 --cluster-slave --cluster-master-id 新主机节点ID`

redis-cli --cluster add-node 192.168.xx.xx:6388 192.168.xx.xx:6387 --cluster-slave --cluster-master-id e4781f644d4a4e4d4b4d107157b9ba8144631451-------这个是6387的编号,按照自己实际情况

![在这里插入图片描述](https://img-blog.csdnimg.cn/aedaea35d4b54af68227be1bc151b4c2.png

·检查集群情况第3次

redis-cli --cluster check 192.168.xx.xx:6382

![在这里插入图片描述](https://img-blog.csdnimg.cn/452e02272d0142a3b82b517a504e0286.png

至此,4主4从扩容完成

主从缩容案例(4主4从------》3主3从)

目的:6387和6388下线
·检查集群情况1获得6388的节点ID

redis-cli --cluster check 192.168.xx.xx:6382

在这里插入图片描述

·将6388删除 从集群中将4号从节点6388删除

命令:redis-cli --cluster del-node ip:从机端口 从机6388节点ID

redis-cli --cluster del-node 192.168.xx.xx:6388 5d149074b7e57b802287d1797a874ed7a1a284a8

![在这里插入图片描述](https://img-blog.csdnimg.cn/b92723638fcb44b3bf064c884da10e4c.png

redis-cli --cluster check 192.168.xx.xx:6382

检查一下发现,6388被删除了,只剩下7台机器了。
在这里插入图片描述

·将6387的槽号清空,重新分配,本例将清出来的槽号都给6381

redis-cli --cluster reshard 192.168.xx.xx:6381

![在这里插入图片描述](https://img-blog.csdnimg.cn/bdb448d8f7e640429a4644f264a42b1c.png

·检查集群情况第二次

redis-cli --cluster check 192.168.xx.xx:6381

4096个槽位都指给6381,它变成了8192个槽位,相当于全部都给6381了,不然要输入3次,一锅端
在这里插入图片描述

·将6387删除

命令:redis-cli --cluster del-node ip:端口 6387节点ID

redis-cli --cluster del-node 192.168.xx.xx:6387 e4781f644d4a4e4d4b4d107157b9ba8144631451

在这里插入图片描述

·检查集群情况第三次

redis-cli --cluster check 192.168.xx.xx:6381

在这里插入图片描述
至此4主4从缩容完成

笔记来源:Docker

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

基于Vue+SpringBoot的城市桥梁道路管理系统 开源项目

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块三、系统展示四、核心代码4.1 查询城市桥梁4.2 新增城市桥梁4.3 编辑城市桥梁4.4 删除城市桥梁4.5 查询单个城市桥梁 五、免责说明 一、摘要 1.1 项目介绍 基于VueSpringBootMySQL的城市桥梁道路管理系统,支持…

小型机房380V断电报警门磁开关状态检测远程控制RTU

在现代社会中,小型机房起到了至关重要的作用,为各种系统和设备提供稳定的电力供应。然而,由于各种原因,如供电故障、设备故障或非法侵入等,机房的正常运行可能会受到威胁。为了保障机房的安全和可靠性,我们…

了解七大经典排序算法,看这一篇就足够了!!!

✏️✏️✏️好,那么今天给大家分享一下七大经典排序算法! 清风的CSDN博客 😛😛😛希望我的文章能对你有所帮助,有不足的地方还请各位看官多多指教,大家一起学习交流! 动动你们发财的…

java Could not resolve placeholder

1、参考:https://blog.csdn.net/yu1812531/article/details/123466616 2、配置文件: 3、在application.properties中设置要使用的配置文件

最简单的测试Jquery-jquery是否正常工作的代码

01-运行后在页面上显示“jQuery is working!” 代码如下&#xff1a; <!DOCTYPE html> <html> <head><meta charset"UTF-8"><title>it is title</title><meta name"viewport" content"widthdevice-width,in…

小程序游戏、App游戏与H5游戏:三种不同的游戏开发与体验方式

在当今数字化的时代&#xff0c;游戏开发者面临着多种选择&#xff0c;以满足不同用户群体的需求。小程序游戏、App游戏和H5游戏是三种流行的游戏开发和发布方式&#xff0c;它们各自具有独特的特点和适用场景。 小程序游戏&#xff1a;轻巧便捷的社交体验 小程序游戏是近年来…

小米手环8pro重新和手机配对解决办法

如果更换了手机&#xff0c;那么小米手环8pro是无法和新手机自动连接的。 但是在新手机上直接连接又连接不上&#xff0c;搜索蓝牙根本找不到手环的蓝牙。 解决办法就是&#xff1a; 把手环恢复出厂&#xff01;&#xff01;&#xff01;&#xff01;&#xff01; 是的&…

骨传导蓝牙耳机排行榜,精选五款骨传导耳机推荐!

目前市面上的骨传导耳机大多是传统挂耳式&#xff0c;虽然佩戴更稳固&#xff0c;但是也限制住了其使用场景&#xff0c; 但近两年&#xff0c;有一款名为骨传导耳机的品类进入了大众的视野&#xff0c;它以独特的款式和超乎以往的佩戴舒适性迅速圈粉无数&#xff0c;并成为当下…

使用Rust编写爬虫代码来抓取精美的图片

目录 一、引言 二、Rust爬虫框架介绍 三、爬虫代码实现 1、创建Scrapy项目 2、创建Spider 3、定义Item对象 4、修改settings.py文件 5、运行爬虫程序 四、图片抓取与存储 五、优化爬虫性能 六、注意事项 总结 一、引言 网络爬虫是一种自动化的网页访问工具&#x…

高德地图系列(四):vue项目利用高德地图实现车辆的路线规划

目录 第一章 效果图 第二章 源代码 第一章 效果图 小编该案例主要实现的两个点的思路&#xff1a;1、有两个正常的经纬度就可以在地图中绘制出汽车从起点到终点的路线规划&#xff1b;2、当用户经纬度发生变化时&#xff0c;用户可以通过某个操作&#xff0c;或者程序员通过…

【Attack】针对GNN-based假新闻检测器

Attacking Fake News Detectors via Manipulating News Social Engagement AbstractMotivationContributions FormulationMethodologyAttacker Capability&#xff08;针对挑战1&#xff09;Agent Configuration&#xff08;针对挑战3&#xff09; WWW’23, April 30-May 4, 20…

单点车流量与饱和度的计算思考

sat&#xff1a;饱和度 v&#xff1a;平均车速 d(v)&#xff1a;车速为v情况下的安全车距&#xff08;车距车身长&#xff0c;平均值&#xff09; l&#xff1a;车道数 f&#xff1a;单位时间监测流量&#xff08;车/min&#xff09; 饱和度计算公式&#xff1a; 推导过程…

【23真题】魔都高校真题!刷一刷!

今天分享的是23年上海海事大学806的信号与系统试题及解析。 本套试卷难度分析&#xff1a;22年上海海事大学806考研真题&#xff0c;我也发布过&#xff0c;若有需要&#xff0c;戳这里自取&#xff01;本套试题内容难度适中&#xff0c;题量适中&#xff0c;考察的知识点不难…

插件漏洞导致 60 万个 WordPress 网站遭受攻击

WordPress 插件 WP Fastest Cache 容易受到 SQL 注入漏洞的攻击&#xff0c;该漏洞可能允许未经身份验证的攻击者读取站点数据库的内容。 WP Fastest Cache 是一个缓存插件&#xff0c;用于加速页面加载、改善访问者体验并提高网站在 Google 搜索上的排名。 根据 WordPress.o…

网站高性能架构设计——高性能NOSQL与缓存

从公众号转载&#xff0c;关注微信公众号掌握更多技术动态 --------------------------------------------------------------- 一、NOSQL简介 1.关系数据库存在如下缺点 (1)关系数据库存储的是行记录&#xff0c;无法存储数据结构 以微博的关注关系为例&#xff0c;“我关注…

HT81696 立体声D类音频功率放大器应用领域

HT81696 立体声D类音频功率放大器应用领域于&#xff1a;・智N音响 ・无线音响 ・便携式音箱 ・2.1声道小音箱・拉杆音箱 ・便携式游戏机等等。 HT81696内部集成免滤波器调制技术&#xff0c;能够直接驱动扬声器&#xff0c;内置的关断功能使待机电流Z小化&#xff0c;还集成了…

「Python编程基础」第3章:控制流

文章目录 一、用“炒菜”简单介绍下“控制流”二、布尔值三、比较运算符四、 和 操作符的区别五、布尔操作符六、混合布尔和比较操作符七、代码块是什么&#xff1f;八、控制流语句1. if 语句2. else语句3. elif语句4. 总结 九、while循环语句十、break语句十一、continue语句…

[读论文]DiT Scalable Diffusion Models with Transformers

论文翻译Scalable Diffusion Models with Transformers-CSDN博客 论文地址&#xff1a;https://arxiv.org/pdf/2212.09748.pdf 项目地址&#xff1a;GitHub - facebookresearch/DiT: Official PyTorch Implementation of "Scalable Diffusion Models with Transformers&qu…

在哪里可以制作一本精美的翻页产品册呢?

你是否曾经为了一张可滑动的画册而翻看了整个产品册&#xff1f;翻页产品册是一种数字化的画册形式&#xff0c;它可以在电脑、手机、平板等设备上进行浏览和阅读。相比传统的纸质画册&#xff0c;翻页产品册有着更多的优势和用途。那么&#xff0c;在哪里可以制作一本这种精美…

分布式系统架构理论与组件

文章目录 1.分布式系统的发展2.分布式系统的挑战3.分布式系统基本理论3.1 CAP定理3.2 PACELC理论3.3 BASE模型3.4 一致性算法 4.分布式架构组件4.1 主要组件4.2 辅助工具4.3 常用架构 5.常用数据库5.1 数据库的发展5.2 OLTP和OLAP5.3 常用NoSQL数据库5.4 常用关系型数据库 1.分…