なぜ永続性が必要なのか?
通常、すべての Redis データはメモリに保存されます。データベースに障害が発生して再起動されると、Redis クラスターや Redis 内であっても、すべてのデータが失われます。 Sentinel モードでのマスター/スレーブ同期データの回復にはまだ時間がかかります。
永続化機能により、プロセスの終了によるデータ損失を効果的に回避でき、次回の再起動時に以前に永続化されたファイルを使用してデータを回復できます。
Redis 永続性を使用すると、データはディスクに保存されます。データベースの増分同期を実行する場合、必要な時間は完全同期を実行する場合よりもはるかに短くなります。障害からのデータ回復は、運用環境において非常に重要な役割を果たします!
Redis データの永続性には 2 つのオプションがあります
Redis の永続性には 2 つのオプションがあります:
RDB は、現時点のすべての Redis データを定期的にディスクに保存するスナップショット データ ストレージです。
AOF は、Redis の書き込み操作をリアルタイムでディスクに記録する追加ベースのストレージ方法です。
これら 2 つのソリューションの違いは何ですか? 1 つずつ説明しましょう~
1. RDB 永続性
Redis の書き込みによって RDB 永続化条件がトリガーされると (dgsave コマンドを手動で実行することでもトリガーできます)、Redis のメイン プロセスは子プロセスをフォークして一時的な RDB ストレージ ファイルを作成します。ファイルの作成が完了すると、一時的なファイル名の変更により、元の RDB ファイルが置き換えられます。 RDB ファイルは、災害復旧のバックアップとデータのリカバリに非常に適した単一のファイルです。RDB ファイルを使用したデータベースの復元には時間がかかりません。通常、1G スナップショット ファイルをメモリにロードするのにかかる時間は約 20 秒だけです。
欠点:
RDB 永続性は、次のストレージがまだトリガーされていないときに Redis データを定期的に保存するだけです Redis がクラッシュした場合、メモリ内のすべてのデータが失われます。
また、データ量が多い場合、サブプロセスをフォークする動作により多くのCPUが消費され、以下の監視グラフに示すように、RDB永続化が毎回トリガーされます。 1800 番台は Redis の CPU を大量に消費します。 2 番目に長いブロックは、子プロセスのフォーク中に発生する可能性があります。
パラメータ:
保存オプション 空の保存 "" として設定されている場合、 RDB 永続化を有効にするためのトリガー条件を複数設定できます。たとえば、1 回の書き込みで 900 秒以内にスナップショットがトリガーされ、10 回の書き込みで 300 秒以内にスナップショットがトリガーされます。これは、独自の Redis 書き込み条件に応じて自由に設定できます. パフォーマンスとデータ セキュリティのバランスを保ちます。
stop-writes-on-bgsave-error を有効にすることをお勧めします。redis bgsave でエラーが発生すると、クライアントのリクエストは拒否されます。Bgsave の失敗は、通常、ディスクまたはメモリの空き容量が不足し、監視が不十分であることが原因で発生します。データのセキュリティを向上させるために必要です。
2. AOF の永続性
AOF は、Redis 書き込み操作のコマンドを保存することで永続性を実現します。永続化に AOF を使用すると、Redis データのセキュリティが大幅に向上します。異常なダウンタイムが発生した場合、最大 1 秒間のデータ損失が発生します。 Redis の書き込み操作は AOF ファイルに記録され、ファイルの形式は明確で理解しやすく、データの再構築に便利なように簡単に変更できます。
欠点:
redis 書き込みが増加すると、AOF ストレージ ファイルがますます大きくなり、データベース データに影響を及ぼします。回復時間やディスク容量などの影響があるため、AOF ファイルのサイズを減らすために AOF 書き換えを構成する必要があります。ここでは、デフォルトの 2 つのトリガー条件構成を使用するか、BGREWRITEAOF コマンドを手動で呼び出してトリガーすることができます。
パラメータ:
appendonly は、AOF 永続性を有効にするかどうかを設定します。
appendfsync には、always/everysec/no の 3 つの永続モードがあります。これは、データ ストレージの速度とセキュリティを考慮し、データを毎秒ディスクに同期する Everysec として構成されます。
3. RDB と AOF 永続化の長所と短所の比較
どちらの方法にも独自のメリットがあります。2 つの Redis データ永続化方法を比較してみましょう:
4.
を選択すると、Redis は最初に AOF ファイルが存在するかどうかを確認し、存在しない場合は RDB のロードを試みます。ファイル。
実際の運用環境では、データ量、データ セキュリティに関するアプリケーション要件、予算制約などに応じて、さまざまな状況下でさまざまな永続化戦略が使用されます。この文は次のように書き換えることができます: 永続性を使用しないことを選択することも、個別の RDB または AOF 永続性を使用することも選択することも、RDB と AOF 永続性を同時に有効にすることもできます。
PS: 永続性の選択は、Redis のマスター/スレーブ戦略と合わせて検討する必要があります。マスター/スレーブのレプリケーションと永続性にはデータ バックアップの機能もあり、ホスト マスターとスレーブ スレーブは独立して永続性ソリューションを選択できるためです。 。
以上がRedis の永続化メソッドは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。