В основном доступны два основных типа: async snapsnots и fsync()
. Они называются RDB и AOF соответственно. Подробнее о режимах сохранения на официальной странице .
Обработка сигналов демонизированного процесса синхронизируется с диском, например, когда он получает SIGTERM, поэтому данные все еще будут там после перезагрузки. Я думаю, что демон или ОС должны выйти из строя, прежде чем вы увидите нарушение целостности, даже с настройками по умолчанию (снимки состояния RDB).
Параметр AOF использует файл только для добавления, который регистрирует команды, получаемые сервером, и воссоздает базу данных с нуля при холодном запуске из сохраненного файла. Политика синхронизации диска по умолчанию - сбросить каждую секунду (IIRC), но ее можно настроить на блокировку и запись для каждой команды.
Использование как моментальных снимков, так и инкрементного журнала, кажется, предлагает как долгосрочный подход « не возражаю, если я пропущу несколько секунд данных», так и более безопасный, но дорогостоящий добавочный журнал. Redis поддерживает кластеризацию из коробки, так что репликация, похоже, тоже возможна.
Я сам использую настройку RDB по умолчанию и сохраняю снимки на удаленном FTP. Я еще не видел сбоя, который привел к потере данных. Скорее всего, произойдет резкий отказ оборудования или отключение электроэнергии, но я размещен на VPS. Небольшой шанс, что это произойдет :)