2026年7月30日

2026年7月30日

Redisの永続化(RDB/AOF)設定方法

はじめに

Redisは非持久性なデータストアですが、永続化機能を有効にすることでデータの失失リスクを軽減できます。この記事では、RDB(レギュラー・バ仅代表)とAOF(Appending Only File)の2つの永続化方法について説明します。

症状・背景

なぜRedisの永続化が必要なのか

  • Redisは非持久性なので、突然のクラッシュや電源遮断時にデータが失われることがあります。
  • 複数台のRedisサーバーで構成される高可用性アーキテクチャでは、一台のサーバー障害によるデータロスを防ぐ必要があります。

場面1: サービスの信頼性向上

冗長化されたシステムでは、一時的な障害からサービスのダウンを防ぎます。

場面2: 法的・規制要件

特定の業界や法規制に従う必要がある場合、データ損失は許されません。

場面3: 機密性とプライバシー

個人情報や機密なデータを扱っている場合は、データロスリスクが懸念されます。

手順・設定方法

ステップ1: RDBの設定

# RDBは定期的に全データを圧縮してファイルに保存します。
# まず、保存間隔とファイル名を指定します。

# /etc/redis.conf ファイルを開きます
sudo nano /etc/redis.conf

# save 欄に保存間隔を設定します。例えば、1分間に10回以上更新がある場合は、1分後に全データを保存するようにします。
save 60 10

# backup 指令を使用して定期的なバックアップも実施します
save 3600 1

# 非同期なRDB生成が可能にします
rdbcompression yes

# RDBファイルの名前を指定します
dbfilename dump.rdb

# バックグラウンドでRDBファイルを作成します
stop-writes-on-bgsave-error no

# 保存先ディレクトリを指定します
dir /var/lib/redis/

# 変更を適用するためにRedisを再起動します
sudo systemctl restart redis-server

ステップ2: AOFの設定

# AOFは各命令をファイルに追記することでデータを永続化します。
# まず、AOFの有効性と保存方法を指定します。

# /etc/redis.conf ファイルを開きます
sudo nano /etc/redis.conf

# appendonly 指令を yes に設定してAOF機能を有効にします
appendonly yes

# AOFファイルの名前を指定します
appendfilename "appendonly.aof"

# AOF保存方法を選択します。no : 無効、always : 各命令を保存する、everysec : 1秒ごとに関数を保存します。
appendfsync everysec

# バックグラウンドでAOFファイルを作成します
save "300" 1
save "60" 10
save "15" 100

# AOFのバックアップも有効にします
aof-use-rdb-preamble yes

# 変更を適用するためにRedisを再起動します
sudo systemctl restart redis-server

ステップ3: RDBとAOFの組み合わせ

# RDBとAOFはそれぞれ異なる永続化方法で、互いに補完することができます。
# 両方有効にすることでより高い信頼性を確保できます。

# /etc/redis.conf ファイルを開きます
sudo nano /etc/redis.conf

# appendonly yes を追加してAOF機能を有効にします
appendonly yes

# RDBとAOFの保存方法を選択します
save 300 1
save 60 10
save 15 100

# AOFファイルの名前を指定します
appendfilename "appendonly.aof"

# AOF保存方法を選択します
appendfsync everysec

# RDBファイルの名前と保存間隔を設定します
dbfilename dump.rdb
save 60 10

# バックグラウンドでRDBとAOFファイルを作成します
stop-writes-on-bgsave-error no

# 変更を適用するためにRedisを再起動します
sudo systemctl restart redis-server

ステップ4: 実践/トラブルシュート/監視

# Redisの状態や永続化設定の確認を行います。
redis-cli config get appendonly
redis-cli config get save
redis-cli config get dbfilename
redis-cli config get dump.rdb

# AOFファイルのサイズを確認します
ls -lh /var/lib/redis/appendonly.aof

# RDBファイルのサイズを確認します
ls -lh /var/lib/redis/dump.rdb

# Redisサーバーの状態監視を行います。
redis-cli info replication

注意事項

  • セキュリティ上の注意: AOFファイルやRDBファイルは厳重に管理することが必要です。適切なアクセス制御を設定し、ファイルへの不正アクセスを防ぐべきです。
  • パフォーマンス/運用上の注意: AOFとRDBの両方を有効にする場合、記録される命令数や保存間隔は適切に調整する必要があります。記錰が多すぎるとパフォーマンスへの影響が出る可能性があります。

まとめ

1. RDB: 定期的な全データのバックアップ機能。

2. AOF: 各命令をファイルに追加していく方式で、レプリケーションや故障時の迅速な再起動に適しています。

3. 組み合わせ: RDBとAOFを併用することで、高い信頼性とデータの一致度を確保できます。

4. 監視: 設定の確認やファイルの状態監視は定期的に行いましょう。

5. トラブルシュート: さまざまな永続化設定で問題が発生した場合、RedisのログファイルやAOF/RDBファイルの内容を確認すると有用です。

関連記事:

お気軽にご相談ください

お見積りへ お問い合わせへ