ホームページ  >  記事  >  データベース  >  Redis 永続化メカニズムの実装原理とプロセスは何ですか?

Redis 永続化メカニズムの実装原理とプロセスは何ですか?

WBOY
WBOY転載
2023-06-02 21:43:50856ブラウズ

Redis 永続化メカニズムの実装原理は何ですか?

永続性: Redis はインメモリ データベースであり、データはメモリに保存されます。プロセスの終了によるデータの永続的な損失を避けるために、Redis 内のデータは定期的にいくつかのデータベースに保存される必要があります。フォーム (データまたはコマンド) はメモリからハードディスクに保存され、次回 Redis が再起動されるときに、永続ファイルを使用してデータが回復されます。さらに、災害時バックアップの場合、永続ファイルをリモートの場所にコピーできます。

永続プロセスとは何ですか?

Redis データはディスクに保存できるので、そのプロセスはどのようなものですか?

次の 5 つのプロセスが必要です。

(1) クライアントは書き込み操作をサーバーに送信します (データはクライアントのメモリ内にあります)。

(2) データベース サーバーは書き込み要求のデータを受信します (データはサーバーのメモリ内にあります)。

(3) サーバーは、write システム コールを呼び出して、データをディスクに書き込みます (データはシステム メモリのバッファ内にあります)。

(4) オペレーティング システムは、バッファ内のデータをディスク コントローラに転送します (データはディスク キャッシュにあります)。

(5) ディスク コントローラーは、データをディスクの物理メディアに書き込みます (データは実際にはディスク上に置かれます)。

これら 5 つのプロセスは、理想的な条件下では通常の保存プロセスですが、ほとんどの場合、マシンなどにさまざまな障害が発生します。上記の 3 番目のステップが完了している限り、永続化して保存できます。残りの 2 つのステップはオペレーティング システムによって自動的に実行されます。オペレーティング システムに障害が発生した場合は、上記の 5 つのステップをすべて完了する必要があります。その場合のみです。

上記の 5 つの手順に対処するために、redis は 2 つの異なる永続化メソッドを提供します。RDB (Redis DataBase) と AOF (Append Only File) です。

フォーク操作が必要なため、RDB のスナップショットと AOF の書き換えにより Redis がブロックされるため、リソースを非常に消費する操作になります。したがって、Redis メインプロセスの応答に影響を与えないように、ブロッキングを可能な限り減らす必要があります。

1. フォークの頻度を減らします。たとえば、RDB を手動でトリガーしてスナップショットと AOF 書き換えを生成できます;

2. Redis の最大メモリ使用量を制御して、フォークの過剰な消費を防ぎます。ロング;

3. より強力なハードウェアを使用する;

4. 物理メモリ不足によるフォークの失敗を避けるために、Linux メモリ割り当て戦略を適切に設定する

オンライン実践経験 :

1. Redis 内のデータが特に機密ではない場合、またはデータが他の方法で書き換えられる場合は、永続化をオフにすることができます。データが失われた場合は、他の方法で復元できます。意味;

2. Redis の状況を定期的にチェックする独自の戦略を開発し、バックアップとデータの書き換えを手動でトリガーします;

3. マスター/スレーブ マシンに参加し、1 つのスレーブを使用できますクライアント コマンド;

4.RDB 永続性と AOF 永続性は同時に存在し、一緒に使用することができます。

以上がRedis 永続化メカニズムの実装原理とプロセスは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はyisu.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。