Мы запускаем Redis 5.0.3 на докере с отключенным сохранением и AOF:
127.0.0.1:6379> config get save
1) "save"
2) ""
127.0.0.1:6379> config get appendonly
1) "appendonly"
2) "no"
Все работает нормально (без резервных копий в журналах), до сегодняшнего утра, когда мы получили несколько журналов резервного копирования БД в быстрой последовательности:
21 Mar 2019 04:12:58.453 * DB saved on disk
21 Mar 2019 04:12:58.454 * DB saved on disk
21 Mar 2019 04:12:58.456 * DB saved on disk
21 Mar 2019 04:13:50.153 * DB saved on disk
21 Mar 2019 04:13:51.573 * DB saved on disk
21 Mar 2019 04:13:52.282 * DB saved on disk
21 Mar 2019 04:21:18.539 * DB saved on disk
21 Mar 2019 04:21:18.540 * DB saved on disk
21 Mar 2019 04:21:18.541 * DB saved on disk
В течение этого периода времени Redis сбрасывает все наши ключи - дважды!
Есть идеи, почему это происходит? Система не находится под нагрузкой памяти или процессора, все графики выглядят нормально.
Другие полезные вещи:
- Использование Redis памяти увеличивается, но все еще находится в пределах границ (как и ожидалось, поскольку мы храним потоки данных)
- Количество ключей не меняется в течение этого периода времени, пока все они не упадут
- Задержка постоянна все время
- Redis сообщает об отсутствии просроченных или выселенных ключей
- Медленный журнал в течение этого периода времени увеличивается, а затем сразу после этого снова становится ровным.
EDIT
При дальнейшей отладке с использованием info commandstats
кажется, что в течение этого периода времени было выполнено несколько команд flushall
, что объясняет, что БД спасает от просмотра источника.
Я понятия не имею, почему происходят эти сбросы - в наших приложениях нет команд сброса. Отладка продолжается.