ホームページ  >  記事  >  データベース  >  Redis がデータを永続化する仕組み

Redis がデータを永続化する仕組み

(*-*)浩
(*-*)浩オリジナル
2019-11-27 09:31:311996ブラウズ

Redis は、RDB (Redis DataBase) と AOF (Apend Only File) という 2 つのデータ永続化方式を提供します。

Redis がデータを永続化する仕組み

#RDB 方式

RDB 方式は、ある時点のデータを保存するスナップショット永続化方式です。 。 (推奨学習:

Redis ビデオ チュートリアル )

データ永続化のプロセス中、Redis は最初にデータを一時ファイルに書き込み、永続化プロセスが完了すると、この一時ファイルは最後に保存されたファイルを置き換えるために使用されます。スナップショット ファイルは常に完全に利用できるため、いつでもバックアップを実行できるのはこの機能です。

RDB モードの場合、redis は永続化のために子プロセスを個別に作成 (フォーク) し、メイン プロセスは IO 操作を実行しないため、redis の非常に高いパフォーマンスが保証されます。

大規模なデータ リカバリが必要で、データ リカバリの整合性がそれほど重要でない場合は、RDB 方式の方が AOF 方式よりも効率的です。

AOF メソッド

AOF メソッドは、実行された書き込み命令を記録し、データ回復中にその命令を前から後ろに順番に実行します。

AOF コマンドは、redis プロトコルを使用して、各書き込み操作をファイルの末尾に追加して保存します。 Redis は、AOF ファイルのサイズが大きくなりすぎないように、バックグラウンドで AOF ファイルを書き換えることもできます。

デフォルトの AOF 永続化戦略は、1 秒に 1 回 fsync です (fsync とは、キャッシュ内の書き込み命令をディスクに記録することを指します)。この場合、redis が失敗した場合でも、redis は良好な処理パフォーマンスを維持できるためです。最後の 1 秒のデータのみが失われます。

ログを追加するときに、ディスク容量がいっぱい、inode がいっぱい、または停電が発生してログの書き込みが不完全になっても、問題はありません。Redis には redis-check-aof ツールが用意されています。ログ修復を実行できます。

追記方式のため、何も処理をしないとAOFファイルがどんどん大きくなってしまうため、redisではAOFファイルの書き換え(リライト)機構を提供しています。 AOF ファイル 設定されたしきい値を超えると、redis は AOF ファイルのコンテンツ圧縮を開始し、データを回復できる最小限の命令セットのみを保持します。

例はもっとわかりやすいかもしれません。INCR 命令を 100 回呼び出すと、100 個の命令が AOF ファイルに保存されますが、これは明らかに非常に非効率です。これらの 100 個の命令はマージできます。SET 命令に、これが書き換えメカニズムの原理です。

AOF を書き換える場合、最初に一時ファイルを書き込んでから一時ファイルを置き換えるプロセスが引き続き使用されるため、停電やディスク容量不足などの問題は AOF ファイルの可用性に影響しません。

Redis 関連の技術記事の詳細については、

Redis 入門チュートリアル 列にアクセスして学習してください。

以上がRedis がデータを永続化する仕組みの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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