前面我们介绍了RDB的工作原理,现在我们来介绍一下AOF的持久化
AOF是以日志的方式追加我们执行的命令和数据,只有增删改并且命令执行正确才会记录
Redis 目前支持三种 AOF 保存模式,它们分别是:
- AOF_FSYNC_NO :不保存。
- AOF_FSYNC_EVERYSEC :每一秒钟保存一次。
- AOF_FSYNC_ALWAYS :每执行一个命令保存一次。
我们一般使用每秒触发一次
AOF有一个很重要的机制叫做重写:
就是当我们aof文件大小达到一定量的时候(AOF重写默认大小64m太小 可改5g以上 避免重写频繁)会将aof文件瘦身,就是将文件压缩,在4.0之前会将相同的操作进行合并(比如连续使用set进行了三次,重写会将这三次合并成一次命令存到文件中,这样文件就会变小),在 4.0之后是混合持久化,就是将我们记录的操作变为二进制存到文件中,但是在本次重写之后,下次重写之前的命令依然是我们之前可读的命令,这样的话文件就有可能一部分是二进制,一部分是可读的命令,所以称之为混合持久化。混合持久化加载速度快,体积小。每次重写都会根据内存中的数据生产新的文件。