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