面试题答案
一键面试关键步骤
- 客户端写入:客户端向Redis发送写命令。
- 命令入AOF缓冲区:Redis将接收到的写命令追加到AOF缓冲区。
- AOF刷盘:根据配置的刷盘策略(如always、everysec、no),将AOF缓冲区中的内容写入AOF文件。
机制
- 重写期间写命令处理:在AOF重写过程中,主线程依然正常处理客户端的写命令,这些新的写命令会继续被追加到AOF缓冲区,并根据刷盘策略写入旧的AOF文件,保证在重写过程中数据不会丢失。
- 重写子进程工作:Redis创建一个子进程进行AOF重写,子进程根据当前数据库中的数据生成一个新的、优化的AOF文件内容。
- 新AOF文件替换旧文件:重写完成后,子进程通知主线程,主线程将新生成的AOF文件原子性地替换旧的AOF文件,此时开始使用新的AOF文件进行后续的写操作,从而实现数据一致性。