介绍混合持久化

Redis4.0 开始允许使用 RDB-AOF 混合持久化的方式。
混合持久化结合了两者的优点:快速加载文件,同时避免丢失过多的数据

  • RDB 的优点:更快的载入文件
  • AOF 的优点:追加写入,对性能的影响小

混合持久化的开关由服务器配置的 aof-use-rdb-preamble 选项的值来控制。

文件的创建 & 载入

在 Redis4.0 后支持混合持久化方式,如果使用混合持久化:

  • 当服务器执行写命令后,Redis 会以 AOF 持久化方式将命令写回 incr.aof 文件。
  • 当进行 AOF 文件重写时,Redis 会以 RDB 持久化方式将当前数据库状态保存到名为 base.aof 文件,然后再将 AOF 重写缓冲区中的所有内容写入 incr.aof 文件。
  • 当 Redis 服务器重启后,将载入 base.aof 和 incre.aof 文件用以恢复数据。

    混合持久化 实操

    混合持久化必须同时开启 AOF 持久化 和 RDB 持久化功能。
    通过调用 bgrewriteaof 手动触发 AOF 重写,发现如下三个文件同时更新,并且 incr.aof 文件被清空。
    当服务器执行写命令后,发现写命令记录在 incr.aof 文件中。

    我的疑问: 将 aof-use-rdb-preamble 选项的值设置为 no,进行 AOF 重写时,appendonly.aof.数字.base.aof 然后会更新

image.png
image.png
image.png
image.png

参考资料