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

问题描述

操作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)宕机,无法继续切换

如下:

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

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

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

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

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

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

(0)

相关推荐

  • 基于docker搭建redis-sentinel集群的方法示例

    1.概述 Redis 集群可以在一组 redis 节点之间实现高可用性和 sharding.在集群中会有 1 个 master 和多个 slave 节点.当 master 节点失效时,应选举出一个 slave 节点作为新的 master.然而 Redis 本身(包括它的很多客户端)没有实现自动故障发现并进行主备切换的能力,需要外部的监控方案来实现自动故障恢复. Redis Sentinel 是官方推荐的高可用性解决方案.它是 Redis 集群的监控管理工具,可以提供节点监控.通知.自动故障恢复和

  • 详解SpringBoot Redis自适应配置(Cluster Standalone Sentinel)

    核心代码段 提供一个JedisConnectionFactory  根据配置来判断 单点 集群 还是哨兵 @Bean @ConditionalOnMissingBean public JedisConnectionFactory jedisConnectionFactory() { JedisConnectionFactory factory = null; String[] split = node.split(","); Set<HostAndPort> nodes =

  • redis 主从备份及其主备切换的操作

    首先原文是用了3 个服务器,我是用了一个服务器: 然后再原文的基础上,稍加了自己的整理. 前提: redis中,主从切换场景中,没有绝对的主和从,只有初始化的主和从,然后当主down后,从就变成主了,而主即使连接上,也是从,不会变为主 1.redis-server的主备关系: master : redis-1 slave1 : redis-2 slave3 : redis-3 2. 首先进行主从备份: 修改从服务 redis-1 redis-2 的redis.conf 在从服务上 修改redis

  • Redis Sentinel的使用方法

    1.sentinel monitor 用法: sentinel monitor master-name  ip port quorum 其中,master-name是主节点的名称,ip,port不用解释,是主节点的地址信息. 最后的quorum是判断主节点最终不可达所需要的票数.这个值越大,判断越可信,这个值越小,判断越不可信,一般这个数字取的是sentinel节点数目的一半+1.同时,该值还与sentinel节点的领导者选举有关,至少要有max(quorum,num (sentinel)/2+

  • Linux redis-Sentinel配置详解

    下载 下载地址:https://redis.io/download 在/usr/local/src目录下执行下载. wget http://download.redis.io/releases/redis-3.2.8.tar.gz 安装 解压到/usr/local/src目录,放源码包. tar xzf redis-3.2.8.tar.gz 创建目录/usr/local/redis: make dir /usr/local/redis 进入源码目录: cd /usr/local/src/redi

  • Redis Sentinel的基本搭建

    Redis Sentinel的概念 我们知道Redis主从模式下,一旦主节点由于故障不能提供服务,需要人工将从节点晋升为主节点,同时还要通知应用方更新主节点的地址.然后在很多应用场景下这种故障处理的方式是无法接受的,应用程序需要实时感知当前的可用节点.为了解决这个问题,Redis Sentinel应运而生,也称之为"哨兵". 介绍sentinel之前,先来了解几个redis的概念, 主节点master:Redis进程,主服务 从节点slave:redis进程,从服务 Redis数据节点

  • Redis Sentinel实现哨兵模式搭建小结

    Redis哨兵模式,用现在流行的话可以说就是一个"哨兵机器人",给"哨兵机器人"进行相应的配置之后,这个"机器人"可以7*24小时工作,它能能够自动帮助你做一些事情,如监控,提醒,自动处理故障等. Redis-sentinel简介 Redis-sentinel是Redis的作者antirez,因为Redis集群的被各大公司使用,每个公司要写自己的集群管理工具,于是antirez花了几个星期写出了Redis-sentinel. Redis 的 Se

  • Redis服务之高可用组件sentinel详解

    前文我们了解了redis的常用数据类型相关命令的使用和说明,回顾请参考https://www.jb51.net/article/120364.htm 今天我们来聊一下redis的高可用组件sentinel:首先来回顾下redis的主从同步,主从同步最主要的作用是让master的数据在其他服务器上实时存在副本,起到了备份的效果:对于redis的读写来说,主从架构能够让读的请求分散到多个从服务器上,从而降低了单台redis读请求的io压力,同时也提高了redis读请求的并发能力:通常为了数据的一致性

  • 玩转Redis搭建集群之Sentinel详解

    前言 Redis作为内存数据库,需要具备高可用的特点,不然如果服务器宕机,还在内存里的数据就会丢失.我们最常用的高可用方法就是搭建集群,master机器挂了,可以让slave机器顶上,继续提供服务.但是Redis集群是不会自动进行主从切换的,也就是说,如果主节点非常不争气的在凌晨3点挂了,那么运维同学就要马上起床,把从节点改成主节点,这样的操作是非常繁琐低效的.为此,Redis官方提供了一种解决方案:Redis Sentinel 简介 Redis Sentinel集群通常由3到5个节点组成,如果

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

    问题描述 操作redis发现原有Master变成slave,其他slave成master,切换较频繁 问题分析 查看redis服务器sentinel日志,发现主机频繁在凌晨左右sentinel哨兵检查到master挂了,主备切换,排查为每天凌晨左右对hash:sms:qxt:mobile:content:day队列进行删除触发的切机,队列量级过大,删除时导致redis服务器卡住,切机. 问题处理 队列改用分批删除,避免对大数据量队列进行删除而引起切机 补充:redis一主一从一哨兵,第一次主从切

  • postgres主备切换之文件触发方式详解

    本文测试参考PostgresSQL实战一书. 本文档测试环境: 主库IP:192.168.40.130 主机名:postgres 端口:5442 备库IP: 192.168.40.131 主机名:postgreshot 端口:5442 PostgreSQL9.0版本流复制主备切换只能通过创建触发文件方式进行,这一小节将介绍这种主备切换方式,测试环境为一主一备异步流复制环境,postgres上的数据库为主库,postgreshot上的数据库为备库,文件触发方式的手工主备切换主要步骤如下: 1)配置

  • 关于mysql主备切换canal出现的问题解决

    通过配置VIP,在进行主备切换时,出现的报错信息: 1.当主备节点当前binlog文件名称相同时,原主节点的position小于主备切换后的position,出现如下报错: 2020-07-02 15:08:09,332 INFO [destination = 1-236 , address = /192.168.3.100:3306 , EventParser] MysqlConnection:293 | Register slave RegisterSlaveCommandPacket[re

  • PostgreSQL+Pgpool实现HA主备切换的操作

    PostgreSQL流复制实现HA主备切换 环境说明和主机规划 操作系统 主机名 主机 角色 端口 CentOS 7 master 10.0.0.11 PG-Master 54321 CentOS 7 slave 10.0.0.12 PG-Slave 54321 CentOS 7 pool 10.0.0.13 pgpool 54321 基础环境配置(所有主机操作) 配置HOSTS echo -e "10.0.0.11 master\n10.0.0.12 slave\n10.0.0.13 pool

  • 浅析Redis Sentinel 与 Redis Cluster

    一.前言 互联网高速发展的今天,对应用系统的抗压能力要求越来越高,传统的应用层+数据库已经不能满足当前的需要.所以一大批内存式数据库和Nosql数据库应运而生,其中redis,memcache,mongodb,hbase等被广泛的使用来提高系统的吞吐性,所以如何正确使用cache是作为开发的一项基技能.本文主要介绍Redis Sentinel 及 Redis Cluster的区别及用法,Redis的基本操作可以自行去参看其官方文档 . 其他几种cache有兴趣的可自行找资料去学习. 二.Redi

  • MySQL是如何实现主备同步

    主备同步,也叫主从复制,是MySQL提供的一种高可用的解决方案,保证主备数据一致性的解决方案. 在生产环境中,会有很多不可控因素,例如数据库服务挂了.为了保证应用的高可用,数据库也必须要是高可用的. 因此在生产环境中,都会采用主备同步.在应用的规模不大的情况下,一般会采用一主一备. 除了上面提到的数据库服务挂了,能够快速切换到备库,避免应用的不可用外,采用主备同步还有以下好处: 提升数据库的读并发性,大多数应用都是读比写要多,采用主备同步方案,当使用规模越来越大的时候,可以扩展备库来提升读能力.

  • MySQL是怎么保证主备一致的

    目录 MySQL 主备的基本原理 binlog 的三种格式对比 为什么会有 mixed 格式的 binlog? 循环复制问题 总结: 抛出问题:大家知道 binlog 可以用来归档,也可以用来做主备同步,但它的内容是什么样的呢?为什么备库执行了 binlog 就可以跟主库保持一致了呢? MySQL 主备的基本原理 图 1 MySQL 主备切换流程 在状态 1 中,客户端的读写都直接访问节点 A,而节点 B 是 A 的备库,只是将 A 的更新都同步过来,到本地执行.这样可以保持节点 B 和 A 的

  • Redisson如何解决redis分布式锁过期时间到了业务没执行完问题

    目录 面试问题 问题分析 如何回答 一.写在前面 二.Redisson实现Redis分布式锁的底层原理 (1)加锁机制 (2)锁互斥机制 (3)watch dog自动延期机制 (4)可重入加锁机制 (5)释放锁机制 (6)上述Redis分布式锁的缺点 总结 面试问题 Redis锁的过期时间小于业务的执行时间该如何续期? 问题分析 首先如果你之前用Redis的分布式锁的姿势正确,并且看过相应的官方文档的话,这个问题So easy.我们来看 很多同学在用分布式锁时,都是直接百度搜索找一个Redis分

随机推荐