AOF的生成
AOF Append Only File
类似binlog的statement模式,将执行过的语句保存到AOF文件中。
由于page cache的存在,会先保存在page cache在,随后再刷新到磁盘
追加写
redis的容量也是有限的,会使用LRU进行老key的清除,所以AOF文件中会有无用的操作命令。这种情况下,会定期结合redis已有的键值对,进行AOF文件的重写,新写一个文件,然后把旧文件删除。以上操作,redis会启一个子线程进行。
AOF的生成流程
![](https://img.haomeiwen.com/i3810471/f7c615efefcb1d02.png)
左图是Linux文件系统的写入顺序和相关部件,以及相关的关键函数;
对应到AOF的append,写入和fsync();
类似MySQL的binlog和redo log,这三步也有不同的策略
![](https://img.haomeiwen.com/i3810471/90a9fbe447d98d55.png)
网友评论