3主3从redis集群扩缩容配置案例说明
3主3从redis集群扩缩容配置案例说明
文章目录
- 3主3从redis集群扩缩容配置案例说明
- 关闭防火墙+启动docker后台服务
- 新建6个docker实例
- 进入容器redis-node-1并为6台机器构建集群关系
- 以6381作为切入点,查看集群状态
- 主从容错切换迁移案例
- 查看集群信息cluster check
关闭防火墙+启动docker后台服务
systemctl strt docker
新建6个docker实例
大规模的扩缩容,如何快速同时启动,docker提供了瞬间可达
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 6386docker ps
进入容器redis-node-1并为6台机器构建集群关系
docker exec -it redis-node-1 /bin/bashifconfig #查看ip 192.168.121.129redis-cli --cluster create 192.168.121.129:6381 192.168.121.129:6382 192.168.121.129:6383 192.168.121.129:6384 192.168.121.129:6385 192.168.121.129:6386 --cluster-replicas 1
# --cluster-replicas 1表示为每一个master创建一个slave结点
Performing hash slots allocation on 6 nodes…哈希槽对六个结点进行分配
M:表示主机器(master主人)
S:表示从机器 (slaves奴隶)
yes接受分配~分配成功
以6381作为切入点,查看集群状态
redis-cli -p 6381
cluster info
- cluster info查看槽位
root@ubuntu:/data# redis-cli -p 6381
127.0.0.1:6381> cluster info
cluster_state:ok
cluster_slots_assigned:16384
cluster_slots_ok:16384
cluster_slots_pfail:0
cluster_slots_fail:0
cluster_known_nodes:6
cluster_size:3
cluster_current_epoch:6
cluster_my_epoch:1
cluster_stats_messages_ping_sent:415
cluster_stats_messages_pong_sent:422
cluster_stats_messages_sent:837
cluster_stats_messages_ping_received:417
cluster_stats_messages_pong_received:415
cluster_stats_messages_meet_received:5
cluster_stats_messages_received:837
127.0.0.1:6381> cluster nodes
964043841e4c5519d3cde93cae6b32ebe5ba1830 192.168.121.129:6381@16381 myself,master - 0 1652346428000 1 connected 0-5460
702a95b6eeb02a9d01d38152d599fdf57c70cf0c 192.168.121.129:6386@16386 slave 447dba4f4813f9178d67e62488a4c4c5aba87635 0 1652346430721 3 connected
125e88db573553be475175cd604eb9887506a121 192.168.121.129:6385@16385 slave cc788412e2b72c5a3ea3ba5cd9c80197a554382f 0 1652346429000 2 connected
cc788412e2b72c5a3ea3ba5cd9c80197a554382f 192.168.121.129:6382@16382 master - 0 1652346430000 2 connected 5461-10922
187c17cec8177135b6203328156bb7a7e73714d0 192.168.121.129:6384@16384 slave 964043841e4c5519d3cde93cae6b32ebe5ba1830 0 1652346429715 1 connected
447dba4f4813f9178d67e62488a4c4c5aba87635 192.168.121.129:6383@16383 master - 0 1652346428707 3 connected 10923-16383
127.0.0.1:6381>
1,2,3三台机器是master;4,5,6三台机器是slave
1号主机挂4号,2号主机挂5号,3号挂6号,这个是随机分配的(为什么我的这莫巧我也不知道)
主从容错切换迁移案例
127.0.0.1:6381> set k1 vi
(error) MOVED 12706 192.168.121.129:6383
127.0.0.1:6381> set k1 v1
(error) MOVED 12706 192.168.121.129:6383
127.0.0.1:6381> set k2 v2
OK
127.0.0.1:6381> set k3 v3
OK
127.0.0.1:6381> set k4 v4
(error) MOVED 8455 192.168.121.129:6382
127.0.0.1:6381> set k5 v5
(error) MOVED 12582 192.168.121.129:6383
127.0.0.1:6381> set k6 v6
OK
在集群中这样用的话会失效,不能用单机版连接命令
防止路由失效加参数-c
并新增两个key
redis-cli -p 6381 -c
演示
root@ubuntu:/data# redis-cli -p 8381 -c
Could not connect to Redis at 127.0.0.1:8381: Connection refused
not connected> exit
root@ubuntu:/data# redis-cli -p 6381 -c
127.0.0.1:6381> flushall
OK
127.0.0.1:6381> set k1 v1
-> Redirected to slot [12706] located at 192.168.121.129:6383
OK
192.168.121.129:6383> set k2 v2
-> Redirected to slot [449] located at 192.168.121.129:6381
OK
192.168.121.129:6381> set k3 v3
OK
192.168.121.129:6381> set k4 v4
-> Redirected to slot [8455] located at 192.168.121.129:6382
OK
192.168.121.129:6382> set k5 v5
-> Redirected to slot [12582] located at 192.168.121.129:6383
OK
192.168.121.129:6383> set k6 v6
-> Redirected to slot [325] located at 192.168.121.129:6381
OK
即5号和6号slave不是在1号机,越界了,可以用-c
集群化。会跳转到对应的redis
查看集群信息cluster check
redis-cli --cluster check 192.168.121.129:6381
将第一台机器停掉
docker stop redis-node-1
此时1号宕机了,我们从二号开始作为突破
我们查看集群状态
127.0.0.1:6382> cluster nodes
187c17cec8177135b6203328156bb7a7e73714d0 192.168.121.129:6384@16384 master - 0 1652349890155 7 connected 0-5460
125e88db573553be475175cd604eb9887506a121 192.168.121.129:6385@16385 slave cc788412e2b72c5a3ea3ba5cd9c80197a554382f 0 1652349891169 2 connected
cc788412e2b72c5a3ea3ba5cd9c80197a554382f 192.168.121.129:6382@16382 myself,master - 0 1652349890000 2 connected 5461-10922
702a95b6eeb02a9d01d38152d599fdf57c70cf0c 192.168.121.129:6386@16386 slave 447dba4f4813f9178d67e62488a4c4c5aba87635 0 1652349892186 3 connected
447dba4f4813f9178d67e62488a4c4c5aba87635 192.168.121.129:6383@16383 master - 0 1652349889000 3 connected 10923-16383
964043841e4c5519d3cde93cae6b32ebe5ba1830 192.168.121.129:6381@16381 master,fail - 1652349736906 1652349733000 1 disconnected
结点1还活着,但是显示得是fail,此时6384上位,显示master,完成了集群迁移
我们将6381恢复过来,再看看集群信息
root@ubuntu:/mysql/mydata/mysql-slave/conf# docker start redis-node-1
redis-node-1
root@ubuntu:/mysql/mydata/mysql-slave/conf# docker ps |grep redis
3b80844ec9cd redis:6.0.8 "docker-entrypoint.s…" About an hour ago Up About an hour redis-node-6
1ed04c474cbf redis:6.0.8 "docker-entrypoint.s…" About an hour ago Up About an hour redis-node-5
fa6e8cac6376 redis:6.0.8 "docker-entrypoint.s…" About an hour ago Up About an hour redis-node-4
de3446725228 redis:6.0.8 "docker-entrypoint.s…" About an hour ago Up About an hour redis-node-3
c6cdf1fbc619 redis:6.0.8 "docker-entrypoint.s…" About an hour ago Up About an hour redis-node-2
b6924b43bca4 redis:6.0.8 "docker-entrypoint.s…" About an hour ago Up 8 seconds redis-node-1
此时已经恢复过来了,我们查看节点状态
root@ubuntu:/data# redis-cli -p 6381 -c
127.0.0.1:6381> cluster nodes
125e88db573553be475175cd604eb9887506a121 192.168.121.129:6385@16385 slave cc788412e2b72c5a3ea3ba5cd9c80197a554382f 0 1652350295591 2 connected
187c17cec8177135b6203328156bb7a7e73714d0 192.168.121.129:6384@16384 master - 0 1652350294577 7 connected 0-5460
964043841e4c5519d3cde93cae6b32ebe5ba1830 192.168.121.129:6381@16381 myself,slave 187c17cec8177135b6203328156bb7a7e73714d0 0 1652350293000 7 connected
cc788412e2b72c5a3ea3ba5cd9c80197a554382f 192.168.121.129:6382@16382 master - 0 1652350293000 2 connected 5461-10922
447dba4f4813f9178d67e62488a4c4c5aba87635 192.168.121.129:6383@16383 master - 0 1652350292548 3 connected 10923-16383
702a95b6eeb02a9d01d38152d599fdf57c70cf0c 192.168.121.129:6386@16386 slave 447dba4f4813f9178d67e62488a4c4c5aba87635 0 1652350296602 3 connected
可见1号机器虽然活过来了,但是成为从结点,奴隶结点了
如果我们再把4号机停掉,给1号机器上位得机会,此时6381得1好机器依旧能回到主结点
02a95b6eeb02a9d01d38152d599fdf57c70cf0c 192.168.121.129:6386@16386 slave 447dba4f4813f9178d67e62488a4c4c5aba87635 0 1652350296602 3 connected
**可见1号机器虽然活过来了,但是成为从结点,奴隶结点了****如果我们再把4号机停掉,给1号机器上位得机会,此时6381得1好机器依旧能回到主结点**
3主3从redis集群扩缩容配置案例说明相关推荐
- Docker高级篇之Mysql主从复制、Redis集群扩容缩容配置案例详解
Docker之Mysql主从复制.Redis集群扩容缩容配置案例 1. 安装mysql主从复制 1.1 新建主服务器容器实例3307 1.2 进入/mydata/mysql-master/conf目录 ...
- 2022-05-07 designs_集群扩缩容设计方案
一.背景介绍 用户置备的基础设施场景(UPI)通过bootstrap阶段的安装部署流程后,已经具备了一个完整的ccos集群.集群规划可能是3个master节点0个worker节点,或者3个master ...
- Redis cluster集群扩容缩容原理
1. Redis Cluster集群扩容 1.1 扩容原理 redis cluster可以实现对节点的灵活上下线控制 3个主节点分别维护自己负责的槽和对应的数据,如果希望加入一个节点实现扩容,就需要把 ...
- Redis集群搭建加Springboot配置
引子 哨兵模式:一种集群,能够提高读请求的并发,但是容错方面有问题,如果master同步数据给slave的时候,master挂了,那个slave上的数据就没有master新,数据同步的1-2秒的数据会 ...
- Redis集群的三种配置方式案例
前言 Redis有三种集群模式: 主从复制 哨兵(Sentinel) 集群(Cluster)
- redis集群实现(六) 容灾与宕机恢复
2019独角兽企业重金招聘Python工程师标准>>> https://blog.csdn.net/sanwenyublog/article/details/53453085 转载于 ...
- TiDB+TiSpark部署--安装,扩缩容及升级操作
作者: tracy0984 原文来源: https://tidb.net/blog/9dc6c38e 背景 随着业务的变更,可能经常会遇到TiDB数据库的TiKV或TIDB Server节点扩缩容的需 ...
- Docker学习(三):复杂软件安装-主从mysql及redis集群
一.安装mysql主从复制 一主一从 #1.宿主机新建目录以及配置文件 mkdir -p /app/mysql/slave1/data /app/mysql/slave1/log /app/mysql ...
- redis集群扩容和缩容_redis集群cluster搭建,扩容缩容
1. 概要说明 1.1. 概述 本文旨在说明平台部署环境搭建的过程和详细步骤说明,为后面系统部署提供清晰的参考依照. 以下搭建部署的环境,为一个小型的分布式集群环境.满足负载均衡和单点故障 ...
最新文章
- Django 发布时间格式化
- k8s的网络优化(metallb)
- 2011阿里巴巴程序设计公开赛 / 1002 Fruit Ninja
- leetcode842. 将数组拆分成斐波那契序列(回溯)
- 后台接收datetime_input上传date日期时间数据到后台报400怎么办?
- android 月牙动画,一加6月牙白版:可能是目前最漂亮的白色安卓旗舰
- sql server 2000 更改账户默认数据库
- OpenCV精进之路(十三):角点检测
- jqGrid复制表格数据到另外一张表中
- ABP源码分析五:ABP初始化全过程
- redux工作原理简单入门
- kepware怎么读modbus/tcp数据_第479期丨看看这国企9000+的面试题目;国产PLC工控板质量怎么样?...
- python当中df的用法_Pydf替代“df”命令检查不同颜色的磁盘使用情况
- 计算几何【套模板,推荐模板】 Separating Pebbles UVALive - 7461
- -bash: ulimit: max user processes: cannot modify limit: Operation not permitted问题的处理
- android 模拟xp,使用Bochs模拟器瞬间安卓变XP教程
- Tushare取数-历史行情/实时行情
- java 参考中文站
- 文件存储的实现-login登录案例3-SharedPreferences
- 用Java计算二月份有多少天
热门文章
- 【虚幻引擎UE】UE5 AR初体验之静态动态模型加载
- 微信小程序页面元素如何保存成图片
- 10个最佳价格行动交易模式
- 大盘趋势图强弱分析 通达信大盘多空指标公式 副图不加密
- css中单位px、pt、em和rem的区别
- java 发送邮件 outlook_JavaMail发送带图片正文的邮件,outlook等邮箱不显示的问题 | 学步园...
- 苹果超省电技巧分享,教你如何玩转你的iPhone 手机
- HZNUOJ 1588 最大值最小值
- 我们的23种设计模式(一)
- 【加密与解密】Openssl 生成的RSA秘钥如被C#使用解密