05-29
剖析Redis持久化之AOF方式 HOT
上一篇对redis持久化之RDB方式进行了剖析。除了RDB持久化功能之外,Redis还提供了AOF(Append Only File)持久化功能。下面就来介绍一下AOF持久化功能。
1、AOF持久化原理
与RDB持久化通过保存数据库中的键值对来记录数据库状态不同,AOF持久化是通过保存Redis服务器所执行的写命令来记录数据库状态的。并在服务器启动时,通过重新执行这些命令来还原数据库。如下图:
顺便提一句,被写入AOF文件的所有命令都是以Redis的命令请求协议格式保存的。因为Redis的命令请求协议是纯文本格式,所以我们是可以直接打开一个AOF文件,观察里面的内容的。
2、AOF持久化配置
首先在redis.conf文件开启aof持久化(默认没开启)
appendonly yes
然后对redis.conf文件中的“appendfsync”选项进行规则配置。不同的appendfsync值产生的持久化行为也不相同。
appendfsync=always
appendfsync设置为always时,服务器在每个事件循环中将aof_buf缓冲区中的所有内容写入并同步到AOF文件。从效率来说,是三个选项值当中最慢的一个,但从安全性来说,always是最安全的,因为即使出现故障停机,AOF持久化也只会丢失一个事件循环中所产生的命令数据。