我在mod + 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谢谢
发布于 2020-08-16 19:19:26
如果启用了AOF,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 command手动触发a重写。
即使将BGREWRITEAOF配置为no,也可以使用appendonly。但是,请注意,每次调用BGREWRITEAOF时,几乎都会在appendonly.aof文件中得到一个rdb文件。
然后,如果将appendonly配置为yes,您还会得到一个appendonly.aof尾(命令被追加到appendonly.aof文件中)。
BGREWRITEAOF和BGSAVE是昂贵的操作,在运行时会降低服务器的性能。因此,我建议您只使用AOF,这已经使您可以自动地或每次运行BGREWRITEAOF时对日志进行压缩。
您可以将auto-aof-rewrite-percentage设置为低值,例如2%或5%。然后,可以使用这两种策略测试MTTR (重新启动所需的时间)。我相信你会发现两者之间的差别太小,没有必要将这两种策略分开(RDB和AOF)。AOF已经给出了RDB-inside if aof-use-rdb-preamble yes
https://stackoverflow.com/questions/63436459
复制相似问题