解决redis sentinel 频繁主备切换的问题


Posted in Redis onApril 12, 2021

问题描述

操作redis发现原有Master变成slave,其他slave成master,切换较频繁

问题分析

查看redis服务器sentinel日志,发现主机频繁在凌晨左右sentinel哨兵检查到master挂了,主备切换,排查为每天凌晨左右对hash:sms:qxt:mobile:content:day队列进行删除触发的切机,队列量级过大,删除时导致redis服务器卡住,切机。

问题处理

队列改用分批删除,避免对大数据量队列进行删除而引起切机

补充:redis一主一从一哨兵,第一次主从切换成功,再次主从切换无法正常执行?

自己在服务器学着搭建redis主从复制和哨兵模式。为了简单,一开始只是搭建了一主(port 9001),一从(port 6379),一哨兵(26379)

主从哨兵都在一台服务器上,并且主从服务器均设置了密码:123456

先按照 主-->从--->哨兵 的顺序依次启动,日志和执行命令都没有问题,然后shutdown 9001服务器,哨兵模式顺利将主节点切换到6379,然后在启动9001的redis,发现9001的服务器变为slave ;

但是再次将6379(当前的master)宕机,无法继续切换

如下:

解决redis sentinel 频繁主备切换的问题

一开始是以为配置文件有问题,来回检查了几遍,后来发现这个情形(6379为master ,9001为slave),哪怕在master存放新的key-value,也无法同步到9001

查看了一下9001的redis的info配置发现

解决redis sentinel 频繁主备切换的问题

我的6379的服务器是正常运行的,但是9001没法连接到相关的6379服务器,自然也就没法对master(6379)的服务器进行同步了

想到6379设置了服务密码,我就在9001的redis里加了如下配置

解决redis sentinel 频繁主备切换的问题

修改完配置之后,重启服务,再次模拟刚刚的情形,二次切换也成功了

解决redis sentinel 频繁主备切换的问题

以上为个人经验,希望能给大家一个参考,也希望大家多多支持三水点靠木。如有错误或未考虑完全的地方,望不吝赐教。

Redis 相关文章推荐
浅谈Redis的几个过期策略
May 27 Redis
详解Redis复制原理
Jun 04 Redis
解析高可用Redis服务架构分析与搭建方案
Jun 20 Redis
压缩Redis里的字符串大对象操作
Jun 23 Redis
Redis主从配置和底层实现原理解析(实战记录)
Jun 30 Redis
Redis如何实现分布式锁
Aug 23 Redis
Redis 中使用 list,streams,pub/sub 几种方式实现消息队列的问题
Mar 16 Redis
redis sentinel监控高可用集群实现的配置步骤
Apr 01 Redis
Redis实现一个账号只能登录一个设备
Apr 19 Redis
Redis 报错 error:NOAUTH Authentication required
May 15 Redis
Redis特殊数据类型Geospatial地理空间
Jun 01 Redis
redis连接被拒绝的解决方案
Redis如何一键部署脚本
浅谈redis五大数据结构和使用场景
Redis遍历所有key的两个命令(KEYS 和 SCAN)
Apr 12 #Redis
redis配置文件中常用配置详解
Apr 14 #Redis
Redis安装启动及常见数据类型
redis限流的实际应用
Apr 24 #Redis
You might like
PHP树的代码,可以嵌套任意层
2006/10/09 PHP
php对gzip文件或者字符串解压实例参考
2008/07/25 PHP
php快速url重写 更新版[需php 5.30以上]
2010/04/20 PHP
php中使用Akismet防止垃圾评论的代码
2011/06/10 PHP
thinkphp3查询mssql数据库乱码解决方法分享
2014/02/11 PHP
使用PHP实现下载CSS文件中的图片
2015/12/06 PHP
thinkPHP查询方式小结
2016/01/09 PHP
Django 标签筛选的实现代码(一对多、多对多)
2018/09/05 PHP
TNC vs RR BO3 第一场 2.14
2021/03/10 DOTA
javascript中利用数组实现的循环队列代码
2010/01/24 Javascript
javascript实现图片跟随鼠标移动效果的方法
2015/05/13 Javascript
javascript中mouseover、mouseout使用详解
2015/07/19 Javascript
JavaScript使用DeviceOne开发实战(三)仿微信应用
2015/12/02 Javascript
Bootstrap每天必学之轮播(Carousel)插件
2016/04/25 Javascript
js仿百度切换皮肤功能(html+css)
2016/07/10 Javascript
jQuery实现两个select控件的互移操作
2016/12/22 Javascript
jquery ajax加载数据前台渲染方式 不用for遍历的方法
2018/08/09 jQuery
详解vuex的简单todolist例子
2019/07/14 Javascript
el-input 标签中密码的显示和隐藏功能的实例代码
2019/07/19 Javascript
浅谈webpack和webpack-cli模块源码分析
2020/01/19 Javascript
详解微信小程序入门从这里出发(登录注册、开发工具、文件及结构介绍)
2020/07/21 Javascript
RC4文件加密的python实现方法
2015/06/30 Python
PyQt5每天必学之滑块控件QSlider
2018/04/20 Python
python实现从文件中读取数据并绘制成 x y 轴图形的方法
2018/10/14 Python
Python分布式进程中你会遇到的问题解析
2019/05/28 Python
Python While循环语句实例演示及原理解析
2020/01/03 Python
Python高并发和多线程有什么关系
2020/11/14 Python
AC Lens:购买隐形眼镜
2017/02/26 全球购物
亿企通软件测试面试题
2012/04/10 面试题
《蝙蝠和雷达》教学反思
2014/04/23 职场文书
管理人员岗位职责
2015/02/14 职场文书
结婚十年感言
2015/07/31 职场文书
小学中队长竞选稿
2015/11/20 职场文书
MySQL 不等于的三种使用及区别
2021/06/03 MySQL
Python制作春联的示例代码
2022/01/22 Python
Oracle锁表解决方法的详细记录
2022/06/05 Oracle