Redis哨兵主备切换的数据丢失问题及解决

 更新时间:2024年12月10日 09:40:03   作者:流光的咸鱼  
主备切换过程中可能会导致数据丢失,异步复制和脑裂是两种主要原因,异步复制可能导致部分数据未复制到slave而master宕机,脑裂则可能导致多个master存在,旧master恢复后数据被清空,从而丢失数据

导致数据丢失的两种情况

主备切换的过程,可能会导致数据丢失:

异步复制导致的数据丢失

因为 master->slave 的复制是异步的,所以可能有部分数据还没复制到 slave ,master 就宕机了,此时这部分数据就丢失了。

脑裂导致的数据丢失

脑裂,也就是说,某个 master 所在机器突然 脱离了正常的网络 ,跟其他 slave 机器不能连 接,但是实际上 master 还运行着。

此时哨兵可能就会 认为 master 宕机了,然后开启选举,将 其他 slave 切换成了 master 。

这个时候,集群里就会有两个 master ,也就是所谓的 脑裂 。

此时虽然某个 slave 被切换成了 master ,但是可能 client 还没来得及切换到新的 master ,还继 续向旧 master 写数据。

因此旧 master 再次恢复的时候,会被作为一个 slave 挂到新的 master 上去,自己的数据会清空,重新从新的 master 复制数据。

而新的 master 并没有后来 client 写 入的数据,因此,这部分数据也就丢失了。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • redis中修改配置文件中的端口号 密码方法

    redis中修改配置文件中的端口号 密码方法

    今天小编就为大家分享一篇redis中修改配置文件中的端口号 密码方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-05-05
  • redis实现的四种常见限流策略

    redis实现的四种常见限流策略

    因为在网站运行期间可能会因为突然的访问量导致业务异常、也有可能遭受别人恶意攻,所以我们对网站要进行限流,本文主要介绍了redis四种常见限流策略,感兴趣的可以了解一下
    2021-06-06
  • jwt+redis实现登录认证的示例代码

    jwt+redis实现登录认证的示例代码

    在登录业务代码中,当用户登录成功时,生成一个登录凭证存储到redis中,本文主要介绍了jwt+redis实现登录认证的示例代码,具有一定的参考价值,感兴趣的可以了解一下
    2024-03-03
  • Redis分布式可重入锁实现方案

    Redis分布式可重入锁实现方案

    在单进程环境下,要保证一个代码块的同步执行,直接用synchronized 关键字或ReetrantLock 即可,在分布式环境下,要保证多个节点的线程对代码块的同步访问,就必须要用到分布式锁方案,本文介绍一下基于 Redis实现的分布式锁方案,感兴趣的朋友一起看看吧
    2024-02-02
  • 利用yum安装Redis的方法详解

    利用yum安装Redis的方法详解

    Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。从2010年3月15日起,Redis的开发工作由VMware主持。这篇文章主要介绍的是利用yum安装Redis的方法,有需要的朋友们可以参考借鉴,下面来一起看看吧
    2016-11-11
  • 基于 Redis 的 JWT令牌失效处理方案(实现步骤)

    基于 Redis 的 JWT令牌失效处理方案(实现步骤)

    当用户登录状态到登出状态时,对应的JWT的令牌需要设置为失效状态,这时可以使用基于Redis 的黑名单方案来实现JWT令牌失效,本文给大家分享基于 Redis 的 JWT令牌失效处理方案,感兴趣的朋友一起看看吧
    2024-03-03
  • redis数据一致性之延时双删策略详解

    redis数据一致性之延时双删策略详解

    在使用redis时,需要保持redis和数据库数据的一致性,最流行的解决方案之一就是延时双删策略,今天我们就来详细刨析一下,需要的朋友可以参考下
    2023-09-09
  • Redis分布式锁解决秒杀超卖问题

    Redis分布式锁解决秒杀超卖问题

    本文主要介绍了Redis分布式锁解决秒杀超卖问题,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-07-07
  • 如何操作Redis和zookeeper实现分布式锁

    如何操作Redis和zookeeper实现分布式锁

    这篇文章主要介绍了如何操作Redis和zookeeper实现分布式锁的相关资料,需要的朋友可以参考下
    2017-07-07
  • 关于Redis最常见的十道面试题总结大全

    关于Redis最常见的十道面试题总结大全

    Redis作为一个高性能的内存数据存储系统,具有快速读写、持久性、数据结构多样性等特点,广泛应用于各种应用场景,这篇文章主要给大家介绍了关于Redis最常见的十道面试题总结的相关资料,需要的朋友可以参考下
    2024-07-07

最新评论