Механизм RDB (Redis Database Backup) — это способ создания **снапшотов** состояния базы данных Redis и их сохранения на диск. В отличие от [[database/redis/Append-Only File|AOF]], который записывает каждую операцию в реальном времени, RDB создаёт полные резервные копии состояния базы на определенные промежутки времени. Вот как это работает и основные моменты, которые стоит учитывать:
- **Снапшоты базы данных**: Redis периодически сохраняет полную копию всех данных в файл на диске. Это называется “снапшот”. RDB-файл содержит сжатую и двоичную версию всех ключей и их значений на момент создания.
- **Файл дампа**: По умолчанию, RDB-файл называется `dump.rdb` и сохраняется на диск. Этот файл можно использовать для восстановления данных при перезапуске Redis.
**Преимущества RDB:**
- **Производительность**: В отличие от AOF, механизм RDB не влияет на производительность во время нормальной работы Redis. Он не записывает каждую операцию на диск, а вместо этого периодически делает полные снимки базы данных.
- **Меньший объем данных**: Файл RDB, как правило, компактный и занимает меньше места, чем файл AOF, так как он представляет собой сжатую копию текущего состояния базы, а не лог изменений.
- **Быстрое восстановление**: При перезапуске Redis восстановление данных из RDB быстрее, чем воспроизведение всех операций из AOF, так как это просто загрузка состояния базы на момент последнего снапшота.
**Недостатки RDB:**
- **Потенциальная потеря данных**: Поскольку RDB создаёт снимки только через определённые промежутки времени, можно потерять все изменения, которые произошли с момента последнего снапшота, в случае сбоя Redis. Если снапшот создавался 15 минут назад, то при сбое вы потеряете все изменения, сделанные за эти 15 минут.
- **Тяжелые операции на большом объеме данных**: Процесс создания снапшота может потреблять значительные ресурсы, особенно в крупных базах данных, что может влиять на производительность Redis на время создания снимка.