BGREWRITEAOF 怎么会返回 ERR?

BGREWRITEAOF 怎么会返回 ERR?

文档BGREWRITEAOF指出BGREWRITEAOF始终返回字符串值OK

好吧,今天我BGREWRITEAOF向我的 redis-server 2.6.7 发送了消息并收到了(error) ERR回复。

maxmemory是 3G;appendonlyyes。系统有 4GB 的 RAM。

发生了什么?

答案1

负责重写 AOF 的后台线程内存不足。日志如下所示,每隔几百毫秒重复一次:

[2435] * Starting automatic rewriting of AOF on 302% growth
[2435] # Can't rewrite append only file in background: fork: Cannot allocate memory

Redis 陷入了循环,后台线程卡住了,BGREWRITEAOF无法启动新的线程。我通过重启 Redis 服务器来解决这个问题,但停机时间只有几秒钟。

相关内容