Персистентность
Тема дорожной карты · Redis
Персистентность Redis — это механизмы сохранения данных из памяти на диск, позволяющие набору данных пережить перезапуск процесса и системные сбои. Redis поддерживает два режима персистентности: RDB-снимки (Redis Database), записывающие компактный бинарный файл с заданными интервалами, и AOF (Append-Only File), регистрирующий каждую команду записи для гранулярного восстановления. Оба механизма могут быть включены одновременно: Redis использует AOF при перезапуске для наиболее полного восстановления данных, тогда как RDB обеспечивает быстрое резервное копирование. Настройка персистентности Redis требует баланса между потребностями в надёжности и накладными расходами на ввод-вывод: save 900 1 запускает RDB-снимок, а appendonly yes включает AOF с appendfsync everysec для надёжности с точностью до одной секунды. Для эфемерных рабочих нагрузок, таких как чистое кэширование, персистентность можно отключить полностью с помощью save "" и appendonly no для максимальной пропускной способности.
Как это работает
Персистентность имеет два механизма. RDB (save 900 1 ...) — snapshot всего датасета на диск периодически: компактно, быстро грузится, но теряет всё с последнего snapshot при крэше. AOF (appendonly yes) логирует каждую запись в файл, реплеит при рестарте: durable, с тюнингом fsync (always/everysec/no). Можно гонять оба; AOF — для durability, RDB — для быстрого рестарта. Современный Redis (7+) имеет hybrid AOF (RDB-префикс + AOF-хвост).
Когда применять
Для чистого кеша — RDB-only ок, потеря последних минут допустима. Для всего остального — AOF с appendfsync everysec, потеря последней секунды — обычный компромисс. Реплика, периодически делающая BGSAVE для offline бекапов (коррумпированный AOF на primary не должен быть единственным артефактом). Тестируйте restore с RDB/AOF до того, как понадобится.
Типичные ошибки
Ловушки Персистентность: appendfsync always убивает throughput; "у нас AOF, мы в безопасности" (OOM при fork() может коррумпировать AOF — храните off-host бекап); AOF растёт без границ (включите auto-aof-rewrite-percentage); не тестируете restore (день, когда понадобится, — худший день узнать, что AOF битый).