Вопрос проверяет понимание механизма снапшотов в Redis и их роли в обеспечении персистентности данных.
Снапшоты в Redis (RDB) — это моментальные снимки данных, которые сохраняют текущее состояние базы в файл на диске. Они создаются периодически или по команде и используются для быстрого восстановления данных после сбоя.
Снапшоты в Redis, также известные как RDB (Redis Database), представляют собой механизм персистентности, который сохраняет все данные базы в определенный момент времени в файл (обычно dump.rdb).
Создание снапшота:
Redis периодически или по команде (SAVE или BGSAVE) сохраняет данные в файл.
BGSAVE создает снимок в фоновом режиме, минимизируя влияние на производительность.
Формат хранения:
Данные сохраняются в компактном бинарном формате, что делает файл относительно небольшим.
Снапшот содержит полное состояние базы данных на момент создания.
Восстановление:
При перезапуске Redis читает файл RDB и восстанавливает данные в память.
Это быстрее, чем восстановление через AOF (журнал операций).
Плюсы:
Компактный размер файла.
Быстрое восстановление данных.
Минусы:
Возможна потеря данных, сделанных после последнего снапшота.
Создание снапшота может временно нагружать систему.
save 900 1 # Создать снапшот, если за 900 секунд изменился хотя бы 1 ключ
save 300 10 # Создать снапшот, если за 300 секунд изменилось 10 ключейСнапшоты подходят для систем, где допустима небольшая потеря данных (например, кэширование).
Для большей надежности их комбинируют с AOF.