面试题答案
一键面试主从节点交互流程
- 从节点发起复制请求:从节点启动后,通过
SLAVEOF
命令(或配置文件设置)指定主节点的IP和端口,向主节点发送复制请求。 - 主节点响应:主节点收到请求后,会为从节点创建一个复制数据的快照文件(RDB文件),并在内存中记录此后执行的写命令。
- 发送RDB文件:主节点将生成的RDB文件发送给从节点,从节点接收到RDB文件后,先清空自身数据,然后加载RDB文件,将数据恢复到从节点。
- 同步写命令:主节点将内存中记录的写命令发送给从节点,从节点按照顺序执行这些命令,从而与主节点的数据保持一致。此后,主节点每执行一个写命令,都会将其发送给从节点,确保数据实时同步。
数据同步关键步骤
- 建立连接:从节点与主节点建立网络连接,以便进行数据传输。
- 生成RDB快照:主节点在后台生成RDB快照文件,这个过程不会阻塞主节点的正常工作。
- 全量同步:从节点接收并加载主节点发送的RDB文件,完成全量数据的初始化。
- 增量同步:主节点将新的写命令以日志形式持续发送给从节点,从节点执行这些命令,实现增量数据同步,保持与主节点的数据一致性。