redis sentinel监控高可用集群实现的配置步骤


Posted in Redis onApril 01, 2022
目录

一、端口转发。

如果在一个主机里面,安装了两个redis实例,可以在项目里面配置IP端口,用iptables转发。

iptables -t nat -A PREROUTING -p tcp --dport 6379 -j REDIRECT --to-ports 7379

当发生切换的时候,触发了脚本,执行语句。端口可以马上转发带正确的redis上面。参数的含义:

redis sentinel监控高可用集群实现的配置步骤

脚本配置:

redis sentinel监控高可用集群实现的配置步骤

脚本实例:

#!/bin/bash

 iptables -t nat -I PREROUTING -p tcp --dport 6379 -j REDIRECT --to-ports $7

这样在项目配置就可以直接使用6379,有什么切换交给iptables转发。IP转发也可以用这种方法实现。不能这样实现的原因是,sentinel和redis都是由不同的容器实现。除非用宿主机安装的办法,不然由sentinel执行的脚本根本不能控制到宿主机的iptables来选择redis。

二、修改HOST文件。

这种方法和第一种少有不同。就不是从网络上面改了。项目里面的配置可以直接用主机名。不过这种方法的缺陷是只能改IP,就是说使用的端口号要一致,每次故障只切换IP,不切换端口。

echo "192.168.20.26 redis" >> /etc/hosts

这种方法不能实现的原因是,sentinel和项目执行容器独立,由sentinel执行的脚本动不了apache的host文件,除非sentinel和apache共享host文件。这非常麻烦。而且,每个sentinel有执行一次,就需要和sentinel一样数量的apache容器。

脚本示例:

#!/bin/bash

sed -i 's/$4/$6/g'  /etc/hosts

三、用第三方代理haproxy。

用这种方法的话,就不管sentinel怎么切换,haproxy只需检测到可读写的redis交给项目就行,而且项目里面配置指向haproxy的IP。

redis sentinel监控高可用集群实现的配置步骤

上图可知haproxy是通过交互发现master可用,slave都切换为down。haproxy是利用轮询检测。

redis sentinel监控高可用集群实现的配置步骤

项目的配置:

redis sentinel监控高可用集群实现的配置步骤

四、插曲

这里是sentinel检测redis。如果3个redis,mater挂了,另外一个slave顶上。如果master重启了,却没有加入集群。

问题就在这里,1的状态都知道2是master,2确不知道有1这个slave。那就是1和2没有通讯了。

1、初始状态:

redis sentinel监控高可用集群实现的配置步骤

2、初始master:

redis sentinel监控高可用集群实现的配置步骤

3、关掉1,

redis sentinel监控高可用集群实现的配置步骤

4、2切换为master:

redis sentinel监控高可用集群实现的配置步骤

5、master状态:

redis sentinel监控高可用集群实现的配置步骤

6、重启1的状态:

redis sentinel监控高可用集群实现的配置步骤
 

1启动之后,马上变为master,但是没有slave,后面切换回slave,他的master是2.。就是说1是master,2、3都是slave,1的状态可以看到2、3的存在。1挂了,2就是master,3还是slave。1重启了就应该是slave,1的状态也说他的master是2,但是2说他只有3这一个slave。

7、查看sentinel的切换日志:

redis sentinel监控高可用集群实现的配置步骤

第一行,说明检测到1已经挂了。

第二行,移除挂了这个状态,即是1已经恢复。

第三行,把1转变为slave,master为2.

这个日志说明出问题不在sentinel,因为他已经完成了使命。

8、查看1的日志:

redis sentinel监控高可用集群实现的配置步骤

这个日志说明1想去连接,但是认证失败。

9、我们去改redis的配置:

redis sentinel监控高可用集群实现的配置步骤

10、检查后一切正常。

以上就是redis sentinel监控高可用集群实现的配置步骤的详细内容,更多关于redis sentinel监控高可用集群的资料请关注三水点靠木其它相关文章!

Redis 相关文章推荐
Redis IP地址的绑定的实现
May 08 Redis
Redis实现订单自动过期功能的示例代码
May 08 Redis
浅谈redis缓存在项目中的使用
May 20 Redis
浅谈redis整数集为什么不能降级
Jul 25 Redis
Redis Cluster 集群搭建你会吗
Aug 04 Redis
详解Redis在SpringBoot工程中的综合应用
Oct 16 Redis
Window server中安装Redis的超详细教程
Nov 17 Redis
Springboot/Springcloud项目集成redis进行存取的过程解析
Dec 04 Redis
Redis 的查询很快的原因解析及Redis 如何保证查询的高效
Mar 16 Redis
Redis如何使用乐观锁(CAS)保证数据一致性
Mar 25 Redis
windows安装 redis 6.2.6最新步骤详解
Apr 26 Redis
Redis实现分布式锁的五种方法详解
Jun 14 Redis
redis调用二维码时的不断刷新排查分析
Apr 01 #Redis
基于Redis6.2.6版本部署Redis Cluster集群的问题
Redis分布式锁的7种实现
Redis 哨兵机制及配置实现
Redis如何使用乐观锁(CAS)保证数据一致性
Mar 25 #Redis
Redis 操作多个数据库的配置的方法实现
Mar 23 #Redis
Redis安装使用RedisJSON模块的方法
Mar 23 #Redis
You might like
用函数读出数据表内容放入二维数组
2006/10/09 PHP
不错的一篇面向对象的PHP开发模式(简写版)
2007/03/15 PHP
php中将一段数据存到一个txt文件中并显示其内容
2014/08/15 PHP
跨浏览器PHP下载文件名中的中文乱码问题解决方法
2015/03/05 PHP
PHP解密Unicode及Escape加密字符串
2015/05/17 PHP
详细解读PHP的Yii框架中登陆功能的实现
2015/08/21 PHP
PHP提取字符串中的手机号正则表达式怎么写
2017/07/17 PHP
得到文本框选中的文字,动态插入文字的js代码
2007/03/07 Javascript
var与Javascript变量隐式声明
2009/09/17 Javascript
getElementsByTagName vs selectNodes效率 及兼容的selectNodes实现
2010/02/26 Javascript
jquery easyui的tabs使用时的问题
2010/03/23 Javascript
jquery选择器之层级过滤选择器详解
2014/01/27 Javascript
Javascript writable特性介绍
2015/02/27 Javascript
javascript框架设计之种子模块
2015/06/23 Javascript
jQuery中(function($){})(jQuery)详解
2015/07/15 Javascript
详解javascript高级定时器
2015/12/31 Javascript
详解微信小程序 页面跳转 传递参数
2016/12/08 Javascript
基于BootStrap与jQuery.validate实现表单提交校验功能
2016/12/22 Javascript
利用Angular2 + Ionic3开发IOS应用实例教程
2018/01/15 Javascript
JavaScript中利用Array filter() 方法压缩稀疏数组
2018/02/24 Javascript
nodejs各种姿势断点调试的方法
2020/06/18 NodeJs
[48:02]Ti4循环赛第三日 VG vs Liquid和NEWBEE vs DK
2014/07/12 DOTA
[47:03]Ti4第二日主赛事败者组 LGD vs iG 2
2014/07/21 DOTA
[01:00:26]Ti4主赛事胜者组第一天 EG vs NEWBEE 1
2014/07/19 DOTA
[47:04]EG vs RNG 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/18 DOTA
pyqt5实现俄罗斯方块游戏
2019/01/11 Python
【python】matplotlib动态显示详解
2019/04/11 Python
树莓派4B+opencv4+python 打开摄像头的实现方法
2019/10/18 Python
简单了解python shutil模块原理及使用方法
2020/04/28 Python
Django ORM实现按天获取数据去重求和例子
2020/05/18 Python
Python创建自己的加密货币的示例
2021/03/01 Python
应届毕业生的自我鉴定
2013/11/13 职场文书
30年同学聚会感言
2014/01/30 职场文书
五年级学生评语
2014/04/22 职场文书
三月学雷锋活动总结
2014/06/26 职场文书
初中成绩单评语
2014/12/29 职场文书