1. AOF全称
Append Only File
2. AOF持久化是通过保存redis服务器所执行的写命令来记录数据库状态
3. AOF持久化功能三个步骤命令追加、文件写入、文件同步
a. 命令追加: 服务器执行完一个写命令之后,将被执行的命令追加到aof_buf缓冲区的末尾
b. 文件写入: 在每次结束一个事件循环前,会调用flushAppendOnlyFile()函数,判断是否将aof_buf缓冲区中的内容写入和保存到 AOF文件里
c. 文件同步: 系统提供了fsync和fdatasync两个函数,可以强制让操作系统立即将缓冲区中的内存写入到磁盘中
4. 为什么需要AOF重写
aof是通过保存被执行的写命令来保存数据库状态的,时间越长,aof文件越大,如果文件过大会影响redis服务器或者宿主计算机并 且进行aof数据还原时间就越长
5. aof重写
创建一个新的aof文件代替现有aof文件,新文件体积更小(通过读数据库现在状态执行写命令来生成aof)
6. 执行aof重写时,新的写命令如何处理
新的写命令会写到aof重写缓冲区中,最后将重写缓冲区中的内容写到aof文件中