繁体   English   中英

redis - 从 RDB 加载并继续写入 AOF

[英]redis - load from RDB and keep writing the AOF

我正在使用组合模式 - 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

谢谢

如果两者都启用,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命令手动触发 AOF 重写

即使将appendonly配置为noBGREWRITEAOF也会起作用。 但是,请注意,每次调用BGREWRITEAOF时,您都会在 appendonly.aof 文件中获得一个 rdb 文件。

然后,如果appendonly配置为yes ,您还会得到一个 AOF 尾部(命令附加到 appendonly.aof 文件中)。

BGREWRITEAOFBGSAVE是昂贵的操作,并且会在运行时降低服务器的性能。 所以我建议你只使用 AOF,它已经自动或每次运行BGREWRITEAOF时都可以为你提供日志压缩。

您可以将auto-aof-rewrite-percentage设置为较低的值,例如 2% 或 5%。 然后,您可以使用这两种策略测试 MTTR(重新启动所需的时间)。 我相信您会发现差异太小以至于无法将这两种策略(RDB 和 AOF)分开组合。 如果aof-use-rdb-preamble yes ,AOF 已经为您提供了 RDB-inside

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM