美文网首页Java 杂谈Java架构师
Redis主从复制丢失数据的情况分析

Redis主从复制丢失数据的情况分析

作者: Java耕耘者 | 来源:发表于2018-12-26 14:34 被阅读0次

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

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

2.脑裂导致的数据丢失

脑裂,也就是说,某个master所在机器突然脱离了正常的网络,跟其他slave机器不能连接,但是实际上master还运行着,此时哨兵可能就会认为master宕机了,然后开启选举,将其他slave切换成了master,这个时候,集群里就会有两个master,也就是所谓的脑裂,此时虽然某个slave被切换成了master,但是可能client还没来得及切换到新的master,还继续向旧master写数据,此时有可能也丢失了,因此旧master再次恢复的时候,会被作为一个slave挂到新的master上去,自己的数据会清空,重新从新的master复制数据

减少数据丢失的配置:

min-slaves-to-write 1

min-slaves-max-lag 10

要求至少有1个slave,数据复制和同步的延迟不能超过10秒,如果说一旦所有的slave,数据复制和同步的延迟都超过了10秒钟,那么这个时候,master就不会再接收任何请求了

有了min-slaves-max-lag这个配置,就可以确保说,一旦slave复制数据和ack延时太长,就认为可能master宕机后损失的数据太多了,那么就拒绝写请求,这样可以把master宕机时由于部分数据未同步到slave导致的数据丢失降低到可控范围内

  如果一个master出现了脑裂,跟其它的slave丢失连接,那么这两个配置可以确保,如果不能继续给指定数量的slave发送数据,而且slave超过10秒没有给自己ack消息,那么就直接拒绝客户端的写请求,这样脑裂后的旧master就不会接受client的新数据,也就避免了数据丢失,因此在脑裂场景下,最多就丢失10秒的数据

在此我向大家推荐一个架构学习交流群。交流学习群号:938837867 暗号:555 里面会分享一些资深架构师录制的视频录像:有Spring,MyBatis,Netty源码分析,高并发、高性能、分布式、微服务架构的原理,JVM性能优化、分布式架构等这些成为架构师必备

相关文章

  • Redis主从复制丢失数据的情况分析

    1.主备切换的过程,可能会导致数据丢失 因为master -> slave的复制是异步的,所以可能有部分数据还没复...

  • Redis在项目上的常用操作【二】

    Redis的高级用法 redis集群 redis 主从复制 概念:持久化保证了即使redis服务重启也不会丢失数据...

  • redis主从复制

    1、什么是主从复制 Redis持久化保证了即使redis服务重启也不会丢失数据,因为redis服务重启后会将硬盘...

  • Redis主从复制看这篇就够了

    什么是主从复制 持久化保证了即使 redis 服务重启也会丢失数据,因为 redis 服务重启后会将硬盘上持久化的...

  • Redis主从复制看这篇就够了

    什么是主从复制 持久化保证了即使 redis 服务重启也会丢失数据,因为 redis 服务重启后会将硬盘上持久化的...

  • Redis数据持久化

    1 redis是内存型的数据库 redis数据放在内存中重启服务器丢失数据重启redis服务丢失数据断电丢失数据 ...

  • Redis主从复制

    主从复制概述 有了 RDB 和 AOF 再也不怕宕机丢失数据了,但是 Redis 实例宕机了怎么实现高可用呢?既然...

  • Redis主从、sentinel故障自动切换

    一、什么是redis主从复制? 主从复制,当用户往Master端写入数据时,通过Redis Sync机制将数据文件...

  • redis: sentinel

    1.概述 redis主从复制解决了单机下数据丢失的问题,在一主多从的结构下,倘若master出现故障,slaves...

  • day07-Redis主从及安全

    Redis集群 主从复制为了避免单台机器故障导致的数据丢失,我们需要将数据复制多份部署到多台不同的服务器上,这样即...

网友评论

    本文标题:Redis主从复制丢失数据的情况分析

    本文链接:https://www.haomeiwen.com/subject/ueyhlqtx.html