如何解决redis-从RDB加载并继续写入AOF
我正在使用组合国防部-RDB + AOF。
我正在寻找一种从RDB文件重新启动后加载的方法-主要用于快速重新启动。
最重要的是,我想继续编写AOF。
知道有灾难后,我会从AOF手动加载。
这是我当前的配置:(我知道state: {
APIData: {},},getters: {
getFeed: state => {return state.APIData["test"] },mutations: {
SET_FEED_DATA(state,{folder_id,data}) {
state.APIData["test"] = data
}
},
是说AOF将在重启后加载,我正在寻找RDB的等待加载并继续编写AOF。)
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
command
BGREWRITEAOF
配置为appendonly
, no
也将起作用。但是,请注意,每次调用BGREWRITEAOF
时,都会在appendonly.aof文件中得到一个rdb文件。
然后,如果将appendonly
配置为yes
,则还会得到一个AOF尾部(命令将附加到appendonly.aof文件中)。
BGREWRITEAOF
和BGSAVE
是昂贵的操作,它们在运行时会降低服务器的性能。因此,我建议您仅使用AOF,它已经为您自动或每次运行BGREWRITEAOF
进行日志压缩。
您可以将auto-aof-rewrite-percentage
设置为较低的值,例如2%或5%。然后,您可以使用两种策略测试MTTR(重新启动所需的时间)。我敢肯定,您会发现差异太小,无法将两种策略(RDB和AOF)分开组合才有意义。如果aof-use-rdb-preamble
yes
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。