1. 従来の AOF と AOF-RDB ハイブリッド方式の違い

AOF(Append-Only File)は、Redisの永続化方式の一つであり、データの変更をファイルに記録して障害が発生した際にデータを復元できるようにする。
👉 AOF の概念について詳しく知りたい場合は、以前のポスト
Redis AOF Rewrite: 性能最適化とデータ保護 をまず確認することをお勧めします。

この記事では、従来の AOF 方式と Redis 7.0 以上で導入された AOF-RDB ハイブリッド方式の違いを集中して分析する。


2. Redis 7.0 以上: AOF-RDB ハイブリッド方式の導入

従来の AOF 方式の 非効率的なディスク使用と遅い復元速度 の問題を解決するために、Redis 7.0 以上では AOF-RDB ハイブリッド方式 が基本適用されている。
この方式は、RDB スナップショットと AOF を組み合わせてデータをより最適化された方式で保存する。

✅ AOF-RDB ハイブリッド方式の動作原理

  1. 初期状態の保存 → Redis は AOF を保存する際、まず 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 → 現在の Redis メモリ状態を保存した RDB スナップショットファイル
  • appendonly.aof.X.incr.aof → その後の 変更事項を記録した AOF ファイル
  • appendonly.aof.manifest → AOF ファイル一覧を管理する メタデータファイル

Redis AOF vs Hybrid Comparison

🚀 結論: Redis 7.0 以上では AOF-RDB ハイブリッド方式が基本設定であるため、appendonly.aof 単一ファイルは生成されない。


4. 従来の AOF と AOF-RDB ハイブリッド方式の比較

比較項目 従来の AOF (appendonly.aof) AOF-RDB ハイブリッド (appendonly.aof.X.base.rdb)
ファイル構造 1 つの appendonly.aof ファイル RDB + AOF ハイブリッド構造
記録方式 すべてのコマンドを順次保存 RDB スナップショット + AOF デルタ保存
性能 時間が経つにつれて遅くなる より速く、最適化されている
Redis 再起動時の復元速度 遅い (全コマンド実行) 速い (RDB を先にロードした後 AOF を反映)
保存空間 サイズが増え続ける RDB に基づいて最適化される
ディスク I/O 負担 すべてのコマンドを保存するため負担 ↑ RDB に基づくため負担 ↓

📌 結論:
- 従来の AOF 方式は データの信頼性が高いが、性能とディスク使用量の問題がある。
- AOF-RDB ハイブリッド方式は 高速な復元、効率的な保存空間使用、低いディスク I/O 負担が利点である。
- ほとんどの運用環境では AOF-RDB ハイブリッド方式が推奨される。 🚀


5. AOF-RDB ハイブリッド方式を使用する際に RDB 設定は必要か?

👉 はい、RDB 関連設定が必要です!
AOF-RDB ハイブリッド方式では RDB が基本となるため、 redis.confRDB 関連設定が正しく適用されている必要がある。

✅ 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. 結論: 実務で Redis AOF 方式を選択する方法

  • Redis 7.0 以上では基本的に AOF-RDB ハイブリッド方式が推奨される
  • 従来の AOF 方式よりも 迅速な復元速度、少ない保存空間使用、低いディスク I/O 負担という利点がある
  • RDB 設定が適用されないとハイブリッド方式が正常に動作しない可能性がある
  • 金融、トランザクションシステムなど、極限のデータ信頼性が必要な場合、従来の AOF 方式が有利な場合もある

🚀 ほとんどの運用環境では AOF-RDB ハイブリッド方式が従来の AOF 方式よりもずっと効率的なので、そのまま使用することが望ましい。