面试题答案
一键面试- 从节点发送SYNC命令:
- 从节点向主节点发送
SYNC
命令,请求进行数据同步。这是数据同步的起始步骤,告知主节点从节点希望开始同步数据。
- 从节点向主节点发送
- 主节点执行的操作:
- 执行BGSAVE:
- 主节点接收到
SYNC
命令后,首先执行BGSAVE
命令,在后台生成一个RDB文件。这个RDB文件是主节点当前数据库状态的快照,包含了主节点上所有的数据。
- 主节点接收到
- 缓存新写命令:
- 在生成RDB文件期间,主节点会继续处理客户端的写命令。为了保证从节点能够完整地恢复到主节点当前的状态,主节点会将这期间执行的写命令缓存起来。
- 发送RDB文件:
- 当RDB文件生成完成后,主节点会将这个RDB文件发送给从节点。从节点接收到RDB文件后,会根据文件内容来初始化自己的数据库状态,使其与主节点执行
BGSAVE
命令时的状态一致。
- 当RDB文件生成完成后,主节点会将这个RDB文件发送给从节点。从节点接收到RDB文件后,会根据文件内容来初始化自己的数据库状态,使其与主节点执行
- 发送缓存的写命令:
- 主节点在发送完RDB文件后,会将在生成RDB文件期间缓存的写命令发送给从节点。从节点接收到这些写命令后,会依次执行,从而进一步更新自己的数据库状态,使其与主节点的最新状态保持一致。
- 执行BGSAVE:
- 从节点执行的操作:
- 接收RDB文件并载入:
- 从节点接收主节点发送的RDB文件,并将其载入到自己的数据库中。通过载入RDB文件,从节点能够快速地将自己的数据库状态恢复到主节点执行
BGSAVE
命令时的状态。
- 从节点接收主节点发送的RDB文件,并将其载入到自己的数据库中。通过载入RDB文件,从节点能够快速地将自己的数据库状态恢复到主节点执行
- 接收并执行写命令:
- 从节点接收主节点发送的在生成RDB文件期间缓存的写命令,并依次执行这些命令。通过执行这些写命令,从节点能够将自己的数据库状态更新到与主节点最新状态一致,完成数据同步。
- 接收RDB文件并载入: