1

Документация для BGREWRITEAOF гласит, что BGREWRITEAOF всегда возвращает строковое значение OK .

Итак, сегодня я отправил BGREWRITEAOF на мой редис-сервер 2.6.7 и получил (error) ERR в ответ.

maxmemory 3G; appendonly это yes . Система имеет 4 ГБ оперативной памяти.

Что случилось?

1 ответ1

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 так, как я его исправил, с несколькими секундами простоя.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .