Redis中的AOF工作流程

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Redis中的AOF工作流程相关的知识,希望对你有一定的参考价值。

参考技术A

AOF(append only file):以独立日志的方式记录每次写的命令,重启时再重新执行AOF文件中的命令达到恢复数据的目的。

AOF的主要作用是解决了数据持久化的实时性,目前已经是Redis持久化的主流方式。

以下是AOF工作流程图:

Redis中默认不开启AOF, appendonly yes ,是开启的配置。

文件的名字默认为appendonly.aof,可以通过参数 appendfilename 来设置。

目录也是通过 dir 来设置。

所有写入命令会追加到 aof_buf(缓冲区) 中。

AOF缓冲区,根据策略 向硬盘做同步 。由参数appendfsync控制,常规使用everysec选项:

随着AOF文件越来越大,需要定期对AOF文件进行重写,达到压缩的目的。把Redis进程内的数据转化为写命令同步到新AOF文件的过程。AOF重写过程分为手动触发和自动触发:

AOF重写流程如下:

当Redis服务器重启时,可以加载AOF文件进行数据恢复。

如上图,流程说明:

对于错误格式的AOF文件 :先进行备份,然后采用 redis-check-aof --fix 命令进行修复,修复后使用 diff -u 对比数据的差异,找出丢失的数据。

AOF文件结尾不完整的情况下 :可以使用 aof-load-truncated 配置来兼容这种情况。

以上是关于Redis中的AOF工作流程的主要内容,如果未能解决你的问题,请参考以下文章

分析RedisRDB和AOF两种持久化机制的工作原理及优劣势

Redis-04-笔记

Redis-04-笔记

Redis-04-笔记

redis因AOF追加磁盘阻塞发生故障转移

Redis深入学习笔记RDB及AOF流程