1. Различия между традиционным AOF и AOF-RDB гибридным методом

AOF (Append-Only File) — это один из методов сохранения данных (постоянства) в Redis, который позволяет записывать изменения данных в файл для восстановления данных в случае сбоя.
👉 Если вам нужно более детальное объяснение концепции AOF, разумно сначала ознакомиться с предыдущим постом
Redis AOF Rewrite: Оптимизация производительности и сохранение данных .

В этой статье подробно анализируются различия между традиционным методом AOF и AOF-RDB гибридным методом, внедренным в Redis версии 7.0 и выше.


2. Redis 7.0 и выше: внедрение AOF-RDB гибридного метода

Для решения проблемы неэффективного использования диска и медленной скорости восстановления традиционного метода AOF, начиная с версии 7.0, в Redis применяется AOF-RDB гибридный метод.
Этот метод объединяет RDB снимки и AOF для более оптимизированного хранения данных.

✅ Принцип работы AOF-RDB гибридного метода

  1. Сохранение начального состояния → При сохранении AOF Redis сначала создает RDB снимок и сохраняет его в appendonly.aof.X.base.rdb.
  2. Сохранение последующих изменений → Все последующие изменения записываются в файл appendonly.aof.X.incr.aof.
  3. При восстановлении данных → Когда Redis перезапускается, сначала загружается RDB, а затем применяется AOF дельта для восстановления последнего состояния.

3. Структура файлов AOF-RDB гибридного метода

📌 В отличие от традиционного подхода с одним файлом appendonly.aof, в Redis 7.0 создаются следующие файлы.

sudo ls -l /var/lib/redis/appendonlydir
-rw-rw---- 1 redis redis  1146587 Feb 19 12:37 appendonly.aof.2.base.rdb   # RDB снимок файла
-rw-r----- 1 redis redis 41279742 Feb 19 20:05 appendonly.aof.2.incr.aof   # AOF дельта файл (для сохранения последующих изменений)
-rw-r----- 1 redis redis       88 Feb 19 12:37 appendonly.aof.manifest    # Файл управления метаданными AOF
  • appendonly.aof.X.base.rdb → текущий файл RDB снимка памяти Redis
  • appendonly.aof.X.incr.aof → после этого AOF файл для записи изменений
  • appendonly.aof.manifestфайл метаданных для управления списком AOF файлов

Сравнение Redis AOF и Hybrid

🚀 Заключение: В версии Redis 7.0 и выше AOF-RDB гибридный метод является настройкой по умолчанию, поэтому отдельный файл appendonly.aof больше не создается.


4. Сравнение традиционного AOF и AOF-RDB гибридного метода

Пункт сравнения Традиционный AOF (appendonly.aof) AOF-RDB гибридный (appendonly.aof.X.base.rdb)
Структура файла Один файл appendonly.aof Гибридная структура RDB + AOF
Способ записи Последовательное сохранение всех команд Сохранение RDB снимка + AOF дельты
Производительность С течением времени замедляется Быстрее и оптимизировано
Скорость восстановления при перезапуске Redis Медленно (выполнение всех команд) Быстро (первоначальная загрузка RDB затем применение AOF)
Используемое пространство Размер постоянно увеличивается Оптимизировано на основе RDB
Нагрузка на дисковый ввод-вывод Нагрузка возрастает за счет хранения всех команд Нагрузка снижается благодаря использованию RDB

📌 Заключение:
- Традиционный метод AOF обладает высокой надежностью данных, но имеет проблемы с производительностью и использованием диска.
- AOF-RDB гибридный метод обладает быстрым восстановлением, эффективным использованием пространства для хранения и низкой нагрузкой на дисковый ввод-вывод.
- В большинстве эксплуатационных сред рекомендуется использовать AOF-RDB гибридный метод. 🚀


5. Нужен ли RDB при использовании AOF-RDB гибридного метода?

👉 Да, нужны настройки, связанные с RDB!
Поскольку AOF-RDB гибридный метод основан на RDB, redis.conf должен иметь правильные настройки для RDB

✅ Настройки, которые нужно проверить при использовании AOF-RDB гибридного метода

appendonly yes         # Включить AOF
aof-use-rdb-preamble yes  # Использовать AOF-RDB гибридный метод (по умолчанию)
save 900 1 300 10 60 10000  # Период создания RDB снимков

🚨 Если нет настройки RDB, AOF-RDB гибридный метод может не работать правильно!
Если установка aof-use-rdb-preamble установлена на no, применяется традиционный aof формат с одним файлом.


6. Заключение: Как выбрать метод AOF Redis в практике

  • В Redis 7.0 и выше по умолчанию рекомендуется использование AOF-RDB гибридного метода
  • Он имеет быструю скорость восстановления, меньшее использование пространства для хранения и низкую нагрузку на дисковый ввод-вывод по сравнению с традиционным AOF методом
  • Если настройки RDB не применяются, гибридный метод может не работать должным образом
  • В случаях, когда требуется высокая надежность данных, таких как финансовые или транзакционные системы, традиционный AOF метод может быть более выгодным

🚀 В большинстве эксплуатационных сред AOF-RDB гибридный метод значительно эффективнее традиционного AOF метода, и его желательно использовать.