ホームページ >データベース >Redis >Redisの永続化メカニズムの分析

Redisの永続化メカニズムの分析

王林
王林オリジナル
2023-05-11 16:30:30935ブラウズ

Redis は、キャッシュ、タスク キュー、メッセージ ミドルウェアなどのシナリオでよく使用される、高性能のオープン ソース インメモリ データベースです。ただし、Redis はメモリに基づいて動作するため、停電などの異常事態が発生するとデータ損失が発生します。そのため、Redis はデータのセキュリティと信頼性を確保するために 2 つの永続化メカニズムを提供します。以下では、これら 2 つの永続化メカニズムを分析してみましょう。

  1. RDB 永続化

RDB (redis データベース) は、Redis のデフォルトの永続化方法です。特定の条件が満たされると、Redis はメモリ内のデータ スナップショットをディスク上の RDB ファイルに書き込みます。 RDB ファイルの形式はバイナリで、現時点でのデータベースのすべてのキーと値のペア情報が含まれています。

RDB 永続化の利点は、RDB ファイルをメモリにロードするだけで済むため、必要なスペースが少なく、データを迅速に復元できることです。

RDB 永続性をトリガーするには 2 つの方法があります:

1) 手動操作

Redis クライアントで SAVE または BGSAVE コマンドを実行して、RDB 永続性を手動でトリガーします。 SAVE コマンドは Redis サーバーをブロックし、RDB ファイルが書き込まれるまで戻りません。BGSAVE を使用すると、Redis サーバーはバックグラウンドで RDB 永続化操作を実行でき、Redis サーバーの通常のサービスはブロックされません。

2) 自動トリガー

Redis の自動トリガー ルールを設定し、ルールが満たされると、RDB 永続化操作が自動的に実行されます。これは、redis.conf ファイルの次の設定を通じて構成できます。

save 900 1
save 300 10
save 60 10000

ここでの設定は、少なくとも 1 つのキーと値のペアが変更されると、300 秒以内に少なくとも 10 のキーと値のペアが変更され、60 秒以内に少なくとも 10,000 のキーと値のペアが変更されると、RDB 永続化操作がトリガーされます。複数のルールが設定されている場合、Redis は設定された順序で RDB 永続化操作を実行することに注意してください。

  1. AOF 永続性

AOF (追加専用ファイル) 永続性は、追加ベースの永続化メカニズムです。 Redis がデータベースを変更するコマンドを受け取ると、そのコマンドが実行されるだけでなく、AOF ファイルの末尾に追加されます。

AOF 永続性の利点は、データベースを変更するすべての操作が AOF に記録されるため、データの損失が最小限に抑えられ、AOF ファイルのテキスト形式が読みやすく理解しやすいため、データの安全性が向上することです。 。

AOF 永続性をトリガーするには 2 つの方法があります:

1) 手動操作

Redis クライアントで BGREWRITEAOF コマンドを実行して、AOF 永続性を手動でトリガーします。このコマンドは、AOF ファイルの書き換え操作をバックグラウンドで実行し、Redis によって実行されたコマンドを新しい AOF ファイルに再記録し、データベースに影響を与えるコマンドのみを保持します。

2) 自動トリガー

redis.conf ファイルの構成を通じて自動トリガー ルールを設定できます。ルールが満たされると、AOF ファイルが自動的に書き換えられます:

auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb

ここでの設定は、AOF ファイルのサイズが 64MB を超えたとき、または新しい AOF ファイルのサイズが 64MB を超えたときを示します。 AOF 書き換えは既存の AOF ファイルのサイズが 100 倍を超えると、AOF ファイルの書き換えがトリガーされます。

まとめると、RDB 永続化と AOF 永続化にはそれぞれ利点と欠点があり、実際の状況に応じて選択して構成する必要があります。同時に、永続化メカニズムを使用している間は、データのセキュリティを確保するためにデータのバックアップとリカバリのテストも実行する必要があることに注意してください。

以上がRedisの永続化メカニズムの分析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。