Redis主从复制的核心原理是什么

参考答案

  • 当启动一个 slave node 的时候,它会发送一个 PSYNC 命令给 master node。
  • 如果这是 slave node 初次连接到 master node,那么会触发一次 full resynchronization 全量复制。此时,master 会启动一个后台线程,开始生成一份 RDB 快照文件,同时,还会将从客户端 client 新收到的所有写命令缓存在内存中。
  • RDB 文件生成完毕后, master 会将这个 RDB 发送给 slave,slave 会先写入本地磁盘,然后再从本地磁盘加载到内存中,
  • 接着,master 会将内存中缓存的写命令发送到 slave,slave 也会同步这些数据。
  • slave node 如果跟 master node 有网络故障,断开了连接,会自动重连,连接之后 master node 仅会复制给 slave 部分缺少的数据。

Redis主从复制的核心原理是什么

Redis主从复制的过程原理

  • 当从库和主库建立MS关系后,会向主数据库发送SYNC命令。
  • 主库接收到SYNC命令后会开始在后台保存快照(RDB持久化过程),并将期间接收到的写命令缓存起来。
  • 当快照完成后,主Redis会将快照文件和所有缓存的写命令发送给从Redis。
  • 从Redis接收到后,会载入快照文件并且执行收到的缓存的命令。
  • 之后,主Redis每当接收到写命令时就会将命令发送从Redis,从而保证数据的一致。

Redis主从复制的缺点

  • 所有的slave节点数据的复制和同步都由master节点来处理,会照成master节点压力太大,使用主从从结构来解决。

 

以上,是Redis面试题【Redis主从复制的核心原理是什么】的参考答案。

输出,是最好的学习方法

欢迎在评论区留下你的问题、笔记或知识点补充~

—end—

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧