解决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 相关文章推荐
Windows下redis下载、redis安装及使用教程
Jun 02 Redis
浅谈Redis位图(Bitmap)及Redis二进制中的问题
Jul 15 Redis
关于redisson缓存序列化几枚大坑说明
Aug 04 Redis
Redis模仿手机验证码发送的实现示例
Nov 02 Redis
Redis 持久化 RDB 与 AOF的执行过程
Nov 07 Redis
redis缓存存储Session原理机制
Nov 20 Redis
聊聊redis-dump工具安装问题
Jan 18 Redis
Redis命令处理过程源码解析
Feb 12 Redis
基于Redis6.2.6版本部署Redis Cluster集群的问题
Apr 01 Redis
Redis如何实现验证码发送 以及限制每日发送次数
Apr 18 Redis
Redis特殊数据类型Geospatial地理空间
Jun 01 Redis
redis protocol通信协议及使用详解
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强制下载类型的实现代码
2011/04/21 PHP
PHP实现 APP端微信支付功能
2018/06/22 PHP
PHP命名空间简单用法示例
2018/12/28 PHP
javascript 强制刷新页面的实现代码
2009/12/13 Javascript
js操作时间(年-月-日 时-分-秒 星期几)
2010/06/20 Javascript
jquery1.4.2 for Visual studio 2010 模板文件
2010/07/14 Javascript
深入理解javascript中return的作用
2013/12/30 Javascript
JS的get和set使用示例
2014/02/20 Javascript
使用JavaScript 编写简单计算器
2014/11/24 Javascript
javascript递归回溯法解八皇后问题
2015/04/22 Javascript
浅析Javascript中bind()方法的使用与实现
2016/04/29 Javascript
angular中的http拦截器Interceptors的实现
2017/02/21 Javascript
jQuery插件开发发送短信倒计时功能代码
2017/05/09 jQuery
JavaScript生成简单等差数列
2017/11/28 Javascript
mui back 返回刷新页面的实例
2017/12/06 Javascript
详解vue数组遍历方法forEach和map的原理解析和实际应用
2018/11/15 Javascript
深入浅析nuxt.js基于ssh的vue通用框架
2019/05/21 Javascript
微信小程序如何刷新当前界面的实现方法
2019/06/07 Javascript
vue 中 命名视图的用法实例详解
2019/08/14 Javascript
jquery实现商品sku多属性选择功能(商品详情页)
2019/12/20 jQuery
JavaScript实现HSL拾色器
2020/05/21 Javascript
彻底搞懂并解决vue-cli4中图片显示的问题实现
2020/08/31 Javascript
python 解析html之BeautifulSoup
2009/07/07 Python
Python函数any()和all()的用法及区别介绍
2018/09/14 Python
python的time模块和datetime模块实例解析
2019/11/29 Python
python excel多行合并的方法
2020/12/09 Python
奥地利票务门户网站:oeticket.com
2019/12/31 全球购物
音乐系毕业生自荐信
2013/10/27 职场文书
怎样客观的做好自我评价
2013/12/28 职场文书
就业意向书范文
2014/04/01 职场文书
2014年公务员工作总结
2014/11/18 职场文书
JavaScript继承的三种方法实例
2021/05/12 Javascript
Python基于百度AI实现抓取表情包
2021/06/27 Python
Pytorch中使用ImageFolder读取数据集时忽略特定文件
2022/03/23 Python
SQL Server中T-SQL标识符介绍与无排序生成序号的方法
2022/05/25 SQL Server
GoFrame gredis缓存DoVar Conn连接对象 自动序列化GoFrame gredisDo/DoVar方法Conn连接对象自动序列化/反序列化总结
2022/06/14 Golang