redis-从rdb加载并继续编写aof

dzhpxtsq  于 2021-06-09  发布在  Redis
关注(0)|答案(1)|浏览(582)

我在mod-rdb+aof联合模式下工作。
我正在寻找一种从rdb文件重新启动后加载的方法—主要用于快速重新启动。
除此之外,我还想继续写aof。
一旦我知道发生了灾难,我将从aof手动加载。
这是我目前的配置:(我知道 appendonly yes 是说aof将在重启后加载,我正在寻找rdb的等待加载并继续编写aof。)

aof-use-rdb-preamble yes
aof-load-truncated yes
aof-rewrite-incremental-fsync yes
appendfilename "appendonly.aof"
appendfsync everysec
appendonly yes

谢谢

ztyzrc3y

ztyzrc3y1#

如果两者都启用,redis将始终加载aof,因为aof提供了更好的耐用性。
通过使用
aof-use-rdb-preamble yes ,你已经在两全其美了。您的aof会时不时地自动重写,首先是rdb文件,然后是aof尾部。看到了吗 redis.conf l1157号公路。
由于希望具有可预测的平均恢复时间(mttr),因此需要调整参数以自动重写aof,如中所述 redis.conf ll113型

auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb

也可以使用 BGREWRITEAOF 命令 BGREWRITEAOF 即使 appendonly 配置为 no . 但是,请注意,每次你打电话 BGREWRITEAOF 您在appendonly.aof文件中得到了一个rdb文件。
那么,如果 appendonly 配置为 yes ,您还会得到一个aof tail(命令附加到appendonly.aof文件中)。 BGREWRITEAOF 以及 BGSAVE 是昂贵的操作,运行时会降低服务器的性能。所以我建议您只使用aof,它已经可以自动或每次运行时对日志进行压缩 BGREWRITEAOF .
你可以设置 auto-aof-rewrite-percentage 低值,比如说2%或5%。然后可以用这两种策略测试mttr(重启所需的时间)。我相信你会发现区别太小了,无法将这两种策略(rdb和aof)分开组合。aof已经给你rdb了如果
aof-use-rdb-preamble yes

相关问题