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 相关文章推荐
详解RedisTemplate下Redis分布式锁引发的系列问题
Apr 27 Redis
Redis5之后版本的高可用集群搭建的实现
Apr 27 Redis
redis通过6379端口无法连接服务器(redis-server.exe闪退)
May 08 Redis
redis哨兵常用命令和监控示例详解
May 27 Redis
浅谈Redis位图(Bitmap)及Redis二进制中的问题
Jul 15 Redis
解析redis hash应用场景和常用命令
Aug 04 Redis
基于Redis结合SpringBoot的秒杀案例详解
Oct 05 Redis
浅谈Redis跟MySQL的双写问题解决方案
Feb 24 Redis
Redis高可用集群redis-cluster详解
Mar 20 Redis
windows安装 redis 6.2.6最新步骤详解
Apr 26 Redis
Redis 异步机制
May 15 Redis
基于Redission的分布式锁实战
Aug 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
php模拟asp中的XmlHttpRequest实现http请求的代码
2011/03/24 PHP
PHP全概率运算函数(优化版) Webgame开发必备
2011/07/04 PHP
php读取3389的脚本
2014/05/06 PHP
php数组索引的Key加引号和不加引号的区别
2014/08/19 PHP
PHP合并静态文件详解
2014/11/14 PHP
JavaScript 动态改变图片大小
2009/06/11 Javascript
JavaScript 学习笔记(十一)
2010/01/19 Javascript
jquery 使用简明教程
2014/03/05 Javascript
一个JS函数搞定网页标题(title)闪动效果
2014/05/13 Javascript
基于NodeJS的前后端分离的思考与实践(二)模版探索
2014/09/26 NodeJs
JS实现淡蓝色简洁竖向Tab点击切换效果
2015/10/06 Javascript
javascript实现方法调用与方法触发小结
2016/03/26 Javascript
详解创建自定义的Angular Schematics
2018/06/06 Javascript
Vue动态控制input的disabled属性的方法
2018/06/26 Javascript
JavaScript引用类型Object常见用法实例分析
2018/08/08 Javascript
nodejs对mongodb数据库的增加修删该查实例代码
2020/01/05 NodeJs
深入理解webpack process.env.NODE_ENV配置
2020/02/23 Javascript
nodejs使用Sequelize框架操作数据库的实现
2020/10/21 NodeJs
在Python的框架中为MySQL实现restful接口的教程
2015/04/08 Python
在Django的URLconf中进行函数导入的方法
2015/07/18 Python
python模块之re正则表达式详解
2017/02/03 Python
Django 使用Ajax进行前后台交互的示例讲解
2018/05/28 Python
Python基于OpenCV库Adaboost实现人脸识别功能详解
2018/08/25 Python
Python函数装饰器常见使用方法实例详解
2019/03/30 Python
如何利用python给图片添加半透明水印
2019/09/06 Python
python中删除某个元素的方法解析
2019/11/05 Python
PyTorch中Tensor的数据统计示例
2020/02/17 Python
纽约香氛品牌:NEST Fragrance
2018/10/15 全球购物
Bluebella德国官网:英国性感内衣和睡衣品牌
2019/11/08 全球购物
弘扬民族精神演讲稿
2014/05/07 职场文书
三八红旗手先进事迹材料
2014/05/13 职场文书
作文评语怎么写
2014/12/25 职场文书
呐喊读书笔记
2015/06/30 职场文书
2015年党务工作者个人工作总结
2015/10/22 职场文书
创业计划书详解
2019/07/19 职场文书
MySQL提取JSON字段数据实现查询
2022/04/22 MySQL