Redis持久化(AOF)~

127 阅读2分钟

「这是我参与2022首次更文挑战的第15天,活动详情查看:2022首次更文挑战

AOF(Append Only File)

AOF( append only file )持久化以独立日志的方式记录每次写命令,并在 Redis 重启时在重新执行 AOF 文件中的命令以达到恢复数据的目的。AOF 的主要作用是解决数据持久化的实时性。

由上述可知,AOF持久化的并不是数据,他是将我们操作过程中的所有命令记录在一个日志当中。当我们关闭redis后所有数据都会消除,但记录命令的日志文件被保存下来,当再次开启redis时它会将日志记录中所有的命令重新执行一边,以达到数据持久化的效果。

Aof保存的是appendonly.aof文件,若需要使用则需要在配置文件中开启。

append

image.png

默认是不开启的,我们需要手动进行配置!我们只需要将 appendonly改为 yes 就开启了aof!

如果这个aof文件有错位,这时候redis是启动不起来的,我们需要修复这个aof文件

redis给我们提供了一个工具:redis-check-aof --fix

如果文件正常,重启就可以直接恢复,但是 aof 文件中错误的信息会被清除,导致数据丢失!

重写规则说明

aof 默认就是文件的无限追加,文件会越来越大!

image.png

如果aof文件大于64mb,太大了!会自动创建一个新的进程来将我们的文件进行重写!

优点和缺点

优点:

  • 每一次修改都同步,文件的完整性会更加好!

  • 每秒同步一次,可能会丢失这一秒的数据

  • 从不同步,效率最高的!

缺点:

  • 相对于数据文件来说,aof远远大于rdb,修复的速度也比 rdb慢!

  • Aof运行效率也要比rdb慢,所以我们redis默认的配置就是rdb持久化!

明天继续加油!