当前位置: 代码网 > it编程>数据库>Redis > Redis哨兵主备切换的数据丢失问题及解决

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

2024年12月11日 Redis 我要评论
导致数据丢失的两种情况主备切换的过程,可能会导致数据丢失:异步复制导致的数据丢失因为 master->slave 的复制是异步的,所以可能有部分数据还没复制到 slave ,master 就宕机

导致数据丢失的两种情况

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

异步复制导致的数据丢失

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

脑裂导致的数据丢失

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

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

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

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

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

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

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com