Ответ
Персистентность в Redis — это набор механизмов для сохранения данных из оперативной памяти на диск, что позволяет восстановить состояние после перезапуска сервера.
Основные механизмы:
-
RDB (Redis Database File) — Создание снимков (snapshots)
- Периодически сохраняет полный дамп данных в бинарный файл.
- Плюсы: Быстрое сохранение/восстановление, компактные файлы.
- Минусы: Возможна потеря данных, созданных между снимками.
- Настройка в
redis.conf:save 900 1 # сохранить через 15 мин, если >=1 изменение save 300 10 # сохранить через 5 мин, если >=10 изменений save 60 10000 # сохранить через 1 мин, если >=10000 изменений rdbcompression yes # сжатие файла
-
AOF (Append Only File) — Логирование операций
- Записывает каждую команду, изменяющую данные, в лог-файл. При перезапуске команды воспроизводятся.
- Плюсы: Высокая надежность, минимальная потеря данных.
- Минусы: Файлы больше, производительность может быть ниже.
- Настройка в
redis.conf:appendonly yes appendfsync everysec # баланс между надежностью и скоростью # Другие варианты: # appendfsync always # максимальная надежность, но медленно # appendfsync no # ОС решает, возможна потеря данных
Рекомендация: Для максимальной надежности часто используют оба механизма одновременно (RDB + AOF). AOF обеспечивает долговечность, а RDB позволяет быстро создать резервную копию и ускорить перезапуск.