ホームページ > データベース > Redis > Redis Persistence(RDB Snapshots、AOF)を構成するにはどうすればよいですか?

Redis Persistence(RDB Snapshots、AOF)を構成するにはどうすればよいですか?

百草
リリース: 2025-03-14 18:04:16
オリジナル
572 人が閲覧しました

Redis Persistence(RDB Snapshots、AOF)を構成するにはどうすればよいですか?

Redis Persistenceを構成するには、RDB(Redisデータベース)スナップショットとAOF(ファイルのみを追加)の両方を考慮する必要があります。それぞれを構成する方法は次のとおりです。

RDBスナップショット:

  1. RDBを有効にする:デフォルトでは、RDBが有効になっています。 redis.confファイルで構成できます。 saveから始まる行を探して、スナップショットの頻度を設定します。

     <code>save 900 1 save 300 10 save 60 10000</code>
    ログイン後にコピー

    これらの行は、次の条件のいずれかが満たされている場合、Redisがデータセットをディスクに保存することを意味します。

    • 900秒(15分)が通過し、少なくとも1つのキーが変更されました。
    • 300秒(5分)が通過し、少なくとも10個のキーが変更されました。
    • 60秒(1分)が通過し、少なくとも10,000キーが変更されました。
  2. ファイル名と場所: redis.confでファイル名とパスを設定することもできます。

     <code>dbfilename dump.rdb dir /var/lib/redis</code>
    ログイン後にコピー
  3. 圧縮: RDBファイルを圧縮してディスクスペースを節約できます。構成でこれを有効または無効にします:

     <code>rdbcompression yes</code>
    ログイン後にコピー
    ログイン後にコピー

AOF(ファイルのみを追加):

  1. AOFを有効にする: aofはデフォルトで無効になっています。それを有効にするには、 redis.confappendonly yesに設定します:

     <code>appendonly yes</code>
    ログイン後にコピー
  2. ファイル名と場所: RDBと同様に、ファイル名とパスを設定できます。

     <code>appendfilename "appendonly.aof" dir /var/lib/redis</code>
    ログイン後にコピー
  3. aof rewrite: redisがaof rewriteを実行するときに制御するには、 auto-aof-rewrite-percentageauto-aof-rewrite-min-size使用します。

     <code>auto-aof-rewrite-percentage 100 auto-aof-rewrite-min-size 64mb</code>
    ログイン後にコピー
    ログイン後にコピー

    これらの設定は、現在のAOFファイルが最後の書き換えよりも100%大きく、少なくとも64MBのサイズである場合、AOF書き換えがトリガーされることを意味します。

  4. fsyncポリシー: appendfsync設定は、redisがディスクにデータを書き込む頻度を制御します。

     <code>appendfsync everysec</code>
    ログイン後にコピー
    ログイン後にコピー

    オプションには、 alwayseverysec 、およびno含まれます。 everysec 、パフォーマンスとデータの安全性のバランスをとる一般的な選択肢です。

REDIS持続性のためにRDBとAOFを選択することのパフォーマンスへの影響は何ですか?

RDBとRedisの持続性のためにAOFを選択することは、いくつかの方法でパフォーマンスに影響します。

RDB:

  • パフォーマンスへの影響: RDBスナップショットは、定義された間隔で大量にデータを記述するため、通常の操作中にリソース集約型が少なくなります。これは、Redisがすべての書き込みコマンドに対してI/O操作を実行する必要がないことを意味します。
  • 回復時間: RDBスナップショットは、データセット全体が一度にメモリにロードされるため、回復に時間がかかりません。
  • データの安全性: RDBは、データの耐久性の点であまり安全ではありません。スナップショット間でRedisがクラッシュすると、最後のセーブポイントからデータが失われる可能性があります。

AOF:

  • パフォーマンスへの影響: AOFは、すべての書き込み操作を記録するため、より頻繁なI/Oにつながるため、よりリソース集約的になります。ただし、パフォーマンスのヒットは、 fsyncポリシーで軽減できます。

    • always :すべてのコマンドのディスクに同期し、高い耐久性を提供しますが、パフォーマンスに大きな影響を与えます。
    • everysec :毎秒ディスクに書き込み、パフォーマンスとデータの安全性のバランスをとることができます。
    • no :オペレーティングシステムに依存してデータをディスクに書き込むことはありません。
  • 回復時間: AOFファイルは、DataSetを再構築するためにすべての書き込み操作を再生する必要があるため、回復に時間がかかる場合があります。
  • データの安全性: AOFは、すべての操作を記録し、クラッシュの場合にデータ損失を最小限に抑えるため、より良いデータ安全性を提供します。

REDISのRDBスナップショットの周波数とサイズを最適化するにはどうすればよいですか?

REDISのRDBスナップショットの頻度とサイズを最適化するには、次の戦略を検討してください。

頻度の最適化:

  • 保存間隔を調整します: redis.confsave間隔を変更して、データの安全性とパフォーマンスのバランスを取ります。たとえば、データセットが頻繁に変更されない場合、頻度を減らすことができます。

     <code>save 3600 1 save 300 100 save 60 10000</code>
    ログイン後にコピー
  • 監視と調整: INFOコマンドを使用して、 rdb_last_save_timeおよびrdb_changes_since_last_saveメトリックを監視します。ワークロードに基づいて保存間隔を調整します。

サイズの最適化:

  • 圧縮: RDB圧縮を有効にして、スナップショットのサイズを縮小します。

     <code>rdbcompression yes</code>
    ログイン後にコピー
    ログイン後にコピー
  • データ型の選択:データ構造を賢く使用します。たとえば、複数の要素を保存するためにLISTの代わりにSETを使用すると、スナップショットが小さくなることがあります。
  • データの有効期限:データセットのサイズを縮小し、その結果、RDBスナップショットを減らすために安全に削除できるキーにTTL(Live to Live)を実装します。

追加のヒント:

  • インクリメンタルスナップショット:可能であれば、インクリメンタルスナップショットを使用して、パフォーマンスに対するスナップショット作成の影響を減らします。この機能は、Redis Enterpriseで利用できます。
  • 大規模なスナップショットを避けてください:データセットが非常に大きい場合は、複数のRedisインスタンスに分割してスナップショットサイズを管理することを検討してください。

RedisでAOFを使用するときにデータの整合性を確保するために、どのような手順を実行すればよいですか?

RedisでAOFを使用するときにデータの整合性を確保するには、次の手順に従ってください。

1。適切なfsyncポリシーを選択します。

  • パフォーマンスとデータの安全性のバランスを得るために、 redis.confeverysecappendfsync設定します。

     <code>appendfsync everysec</code>
    ログイン後にコピー
    ログイン後にコピー
  • データの損失が重要な場合は、 appendfsync always検討しますが、パフォーマンスへの影響に注意してください。

2。通常のAOF書き換え:

  • 自動AOF書き換えを有効にして、ファイルサイズを管理可能に保ち、データの整合性を向上させます。

     <code>auto-aof-rewrite-percentage 100 auto-aof-rewrite-min-size 64mb</code>
    ログイン後にコピー
    ログイン後にコピー
  • また、必要に応じてBGREWRITEAOFコマンドを使用してAOFの書き換えを手動でトリガーすることもできます。

3。AOF腐敗チェック:

  • redis-check-aofツールを使用して、AOFファイルの整合性を確認します。破損が検出された場合、ファイルを修復できます。

     <code>redis-check-aof --fix appendonly.aof</code>
    ログイン後にコピー
  • 特にサーバーが再起動した後、AOFファイルを定期的に確認および修復するためのスクリプトを実装します。

4。冗長性のための複製:

  • Redisレプリケーションを設定して、データの複数のコピーを作成します。これにより、1つのサーバーが失敗した場合でもデータの整合性が保証されます。

     <code>slaveof <masterip> <masterport></masterport></masterip></code>
    ログイン後にコピー
  • 高可用性と自動フェールオーバーのためにセンチネルを使用してください。

5。監視とアラート:

  • Redis InsightなどのRedis監視ツールやPrometheusやGrafanaなどのサードパーティツールを使用して、AOFファイルのサイズと整合性を監視します。
  • 異常なAOF成長またはエラーのアラートを設定します。これは、データの整合性の問題を示す可能性があります。

6。バックアップ戦略:

  • AOFとRDBの両方のスナップショットを含む定期的なバックアップ戦略を実装します。これにより、データ保護の複数の層が提供されます。
  • さまざまな場所にバックアップを保存して、データセンターの障害に対して保護します。

これらの手順に従うことにより、AOFを永続化に使用する場合、Redisセットアップのデータ整合性を大幅に強化できます。

以上がRedis Persistence(RDB Snapshots、AOF)を構成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート