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安装启动及常见数据类型
Apr 14 Redis
Redis5之后版本的高可用集群搭建的实现
Apr 27 Redis
Redis实现订单自动过期功能的示例代码
May 08 Redis
分布式锁为什么要选择Zookeeper而不是Redis?看完这篇你就明白了
May 21 Redis
Windows中Redis安装配置流程并实现远程访问功能
Jun 07 Redis
你真的了解redis为什么要提供pipeline功能
Jun 22 Redis
Redis中一个String类型引发的惨案
Jul 25 Redis
使用Redis实现点赞取消点赞的详细代码
Mar 20 Redis
一文搞懂Redis中String数据类型
Apr 03 Redis
解决 Redis 秒杀超卖场景的高并发
Apr 12 Redis
浅谈Redis缓冲区机制
Jun 05 Redis
Redis配置外网可访问(redis远程连接不上)的方法
Dec 24 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
phpfans留言版用到的数据操作类和分页类
2007/01/04 PHP
PHP多进程编程实例详解
2017/07/19 PHP
Javascript实例教程(19) 使用HoTMetal(5)
2006/12/23 Javascript
jquery.ajax的url中传递中文乱码问题的解决方法
2014/02/07 Javascript
JS实现从表格中动态删除指定行的方法
2015/03/31 Javascript
浅谈setTimeout 与 setInterval
2015/06/23 Javascript
基于replaceChild制作简单的吞噬特效
2015/09/21 Javascript
简单的js表格操作
2016/09/24 Javascript
jQ处理xml文件和xml字符串的方法(详解)
2016/11/22 Javascript
JS+Canvas实现的俄罗斯方块游戏完整实例
2016/12/12 Javascript
vue-router路由懒加载的实现(解决vue项目首次加载慢)
2018/08/28 Javascript
Vue $emit $refs子父组件间方法的调用实例
2018/09/12 Javascript
js实现json数组分组合并操作示例
2019/02/12 Javascript
ES6知识点整理之Proxy的应用实例详解
2019/04/16 Javascript
js定义类的方法示例【ES5与ES6】
2019/07/30 Javascript
利用JS如何获取form表单数据
2019/12/19 Javascript
JavaScript常用工具函数库汇总
2020/09/17 Javascript
[54:54]Newbee vs Serenity 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/18 DOTA
python中查找excel某一列的重复数据 剔除之后打印
2013/02/10 Python
利用Python开发实现简单的记事本
2016/11/15 Python
python先序遍历二叉树问题
2017/11/10 Python
pandas按若干个列的组合条件筛选数据的方法
2018/04/11 Python
Tensorflow使用tfrecord输入数据格式
2018/06/19 Python
Python之列表的插入&替换修改方法
2018/06/28 Python
Python使用tkinter模块实现推箱子游戏
2019/10/08 Python
推荐技术人员一款Python开源库(造数据神器)
2020/07/08 Python
Anaconda的安装与虚拟环境建立
2020/11/18 Python
用python发送微信消息
2020/12/21 Python
HTML5 贪吃蛇游戏实现思路及源代码
2013/09/03 HTML / CSS
Html5 APP中监听返回事件处理的方法示例
2018/03/15 HTML / CSS
Sandro Paris美国官网:典雅别致的法国时尚服饰品牌
2017/12/26 全球购物
社区四风存在问题及整改措施
2014/10/26 职场文书
2014年护士个人工作总结
2014/11/11 职场文书
不会写演讲稿,快来看看这篇文章!
2019/08/06 职场文书
pytorch实现ResNet结构的实例代码
2021/05/17 Python
python调试工具Birdseye的使用教程
2021/05/25 Python