这文档BGREWRITEAOF
指出BGREWRITEAOF
始终返回字符串值OK
。
好吧,今天我BGREWRITEAOF
向我的 redis-server 2.6.7 发送了消息并收到了(error) ERR
回复。
maxmemory
是 3G;appendonly
是yes
。系统有 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 服务器来解决这个问题,但停机时间只有几秒钟。