AOF:
- AOF持久化是通过Redis服务器所执行的写命令来记录数据库状态的;
- 服务器在启动时,通过载入和执行AOF文件中的保存的命令来还原服务器关闭之前的数据库状态;
- AOF持久化功能的实现分为“命令追加”、“文件写入”、“文件同步”三个步骤;
- 命令追加:当AOF持久化功能处于开启状态时,服务器在执行一个写命令之后,会以协议格式 将 被执行的写命令追加到服务器状态的aof_buf缓冲区的末尾(AOF缓冲区);
- 文件的写入与同步:服务器在处理文件事件时可能会执行写命令,将一些内容追加到缓冲区中,Redis服务器会在每次结束一个事件循环之前,调用flushAppendOnlyFile函数,考虑是否将缓冲区当中的内容写入和保存到AOF文件里面;(flushAppendOnlyFile函数的执行计划根据服务器配置的appendfsync选项参数的值来决定,默认为everysec)
- AOF文件的载入与数据还原:AOF文件里面包含了重建数据库状态所需的所有写命令,服务器只需要读入并执行一遍AOF文件中保存的写命令,即可还原服务器关闭之前的数据库状态;
- 具体步骤:1. 创建一个