解决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 相关文章推荐
Redis6.0搭建集群Redis-cluster的方法
May 08 Redis
基于Redis位图实现用户签到功能
May 08 Redis
为Java项目添加Redis缓存的方法
May 18 Redis
详解Redis瘦身指南
May 26 Redis
Redis Cluster 字段模糊匹配及删除
May 27 Redis
redis cluster支持pipeline的实现思路
Jun 23 Redis
Redis做数据持久化的解决方案及底层原理
Jul 15 Redis
Redis中有序集合的内部实现方式的详细介绍
Mar 16 Redis
windows安装 redis 6.2.6最新步骤详解
Apr 26 Redis
Redis特殊数据类型Geospatial地理空间
Jun 01 Redis
Redis keys命令的具体使用
Jun 05 Redis
redis lua限流算法实现示例
Jul 15 Redis
redis连接被拒绝的解决方案
Redis如何一键部署脚本
浅谈redis五大数据结构和使用场景
Redis遍历所有key的两个命令(KEYS 和 SCAN)
Apr 12 #Redis
redis配置文件中常用配置详解
Apr 14 #Redis
Redis安装启动及常见数据类型
redis限流的实际应用
Apr 24 #Redis
You might like
php 向访客和爬虫显示不同的内容
2009/11/09 PHP
php中var_export与var_dump的区别分析
2010/08/21 PHP
php单一接口的实现方法
2015/06/20 PHP
PHP实现的QQ空间g_tk加密算法
2015/07/09 PHP
ThinkPHP中create()方法自动验证表单信息
2017/04/28 PHP
php 如何设置一个严格控制过期时间的session
2017/05/05 PHP
PHP针对redis常用操作实例详解
2019/08/17 PHP
tp5.1 框架数据库-数据集操作实例分析
2020/05/26 PHP
分析 JavaScript 中令人困惑的变量赋值
2007/08/13 Javascript
JavaScript Timer实现代码
2010/02/17 Javascript
分享27款非常棒的jQuery 表单插件
2011/03/28 Javascript
js 判断计算字符串长度/判断空的简单方法
2013/08/05 Javascript
jQuery切换所有复选框选中状态的方法
2015/07/02 Javascript
滚动条的监听与内容随着滚动条动态加载的实现
2017/02/08 Javascript
Javascript实现基本运算器
2017/07/15 Javascript
用vue构建多页面应用的示例代码
2017/09/20 Javascript
Vue-不允许嵌套式的渲染方法
2018/09/13 Javascript
vue 项目地址去掉 #的方法
2018/10/20 Javascript
详解基于iview-ui的导航栏路径(面包屑)配置
2019/02/22 Javascript
[01:06:25]Secret vs Liquid 2018国际邀请赛淘汰赛BO3 第一场 8.25
2018/08/29 DOTA
用Python脚本生成Android SALT扰码的方法
2013/09/18 Python
Python正则表达式教程之二:捕获篇
2017/03/02 Python
对Python 窗体(tkinter)文本编辑器(Text)详解
2018/10/11 Python
在Python中,不用while和for循环遍历列表的实例
2019/02/20 Python
python多环境切换及pyenv使用过程详解
2019/09/27 Python
利用pandas将非数值数据转换成数值的方式
2019/12/18 Python
学习Python需要哪些工具
2020/09/04 Python
波兰快递服务:Globkurier.pl
2019/11/08 全球购物
应届生会计求职信
2013/11/11 职场文书
应届生的求职推荐信范文
2013/11/30 职场文书
物流管理毕业生自荐信范文
2014/03/15 职场文书
卫生系统先进事迹
2014/05/13 职场文书
员工培训协议书
2014/09/15 职场文书
2016年6.5世界环境日宣传活动总结
2016/04/01 职场文书
golang 实现菜单树的生成方式
2021/04/28 Golang
OpenCV-Python直方图均衡化实现图像去雾
2021/06/07 Python