#❝この記事では、ナレッジポイントについて説明します 永続性の概要 RDB AOF RDBとAOFの違い 永続化アプリケーションのシナリオ❞
❝Kaka は、インタビュー ガイドを作成するためのロードマップをまとめ、そのロードマップに従って記事を書く準備をしましたが、後になって、補足されていない知識ポイントを追加していることに気づきました。また、パートナーの皆様にも情報の追加にご協力いただけることを楽しみにしております。コメントセクションでお会いしましょう!##❞
Redis 内のすべてのデータはメモリに保存され、Redis がクラッシュするとデータが失われます。 。 Redis の永続化とは、データをディスクに保存することです。永続的なストレージ メディアを使用してデータ プロセスを保存し、特定の時点で保存されたデータを復元する動作メカニズムは、永続性と呼ばれます。
永続化プロセスでは何が保存されますか?
最初のスナップショット フォームはデータ結果を保存し、後述する RDB であるデータに焦点を当てます。
2 番目の操作プロセスは操作プロセスを格納します。ストレージ構造は複雑であり、焦点は次のとおりです。ポイントはデータ操作プロセスであり、これは以下で説明する AOF
In実際、このデータ回復は他の関係とは異なります。基本的に、大規模なデータベースを復元するために何もする必要はありません。再起動してください
この写真はオンライン ビデオから引用しました。 save コマンドを実行すると、現在の RDB プロセスが完了するまで現在の Redis サーバーがブロックされ、長期的なブロックが発生する可能性があります。このコマンドは基本的に放棄され、作業プロセス中に使用されなくなります。すべての
を bgsave に置き換えますbgsave が Redis で実行されると、直接戻る バックグラウンドでの保存が開始されました
現時点では、ログ ファイルを確認しています。bgsave コマンドは、保存ブロックの問題に対して最適化されています
<span style="display: block; background: url(https://my-wechat.mdnice.com/point.png); height: 30px; width: 100%; background-size: 40px; background-repeat: no-repeat; background-color: #272822; margin-bottom: -7px; border-radius: 5px; background-position: 10px 10px;"></span><code class="hljs" style="overflow-x: auto; padding: 16px; color: #ddd; display: -webkit-box; font-family: Operator Mono, Consolas, Monaco, Menlo, monospace; font-size: 12px; -webkit-overflow-scrolling: touch; letter-spacing: 0px; padding-top: 15px; background: #272822; border-radius: 5px;"><span class="hljs-selector-tag" style="color: #f92672; font-weight: bold; line-height: 26px;">save</span> 900 1<br><span class="hljs-selector-tag" style="color: #f92672; font-weight: bold; line-height: 26px;">save</span> 300 10<br><span class="hljs-selector-tag" style="color: #f92672; font-weight: bold; line-height: 26px;">save</span> 60 10000<br><span class="hljs-selector-tag" style="color: #f92672; font-weight: bold; line-height: 26px;">stop-writes-on-bgsave-error</span> <span class="hljs-selector-tag" style="color: #f92672; font-weight: bold; line-height: 26px;">yes</span><br></code>
save [時間] [キー変更回数]
つまりつまり、300 秒間に 10 件あります。キーの値が変更されると、bgsaveがバックグラウンドで実行されます。
redis のAOF はコマンド バッファー領域を更新します
その後、特定のポリシーに従って redis.conf で構成された .aof ファイルに同期します appendonly yes|no
appendfsync always| Everysec | no
# 次に、redis サービスを再起動して、それを使用できます。 usr/local/redis/data ディレクトリに appendonly.aof ファイルが表示されます。次に、redis クライアントでコマンドを実行してチェックアウトします。データがファイル appendonly.aof に保存されることがわかります。
最初にケースを見てみましょう。 name key を繰り返し設定した後、 appendonly.aof ファイルを開いて表示すると、3 つの操作があることがわかりますが、これら 3 つの操作はすべて 1 つのキーで変更されます。最後のキーだけを保存することはできないでしょうか?この質問では、引き続き下を向いていきます。
コマンドが続くと、 AOF に書き込むとファイルがどんどん大きくなってしまうため、redis ではファイルサイズを圧縮する AOF 書き換え機構を導入しています。 AOF ファイルの書き換えは、redis プロセスのデータを書き込みコマンドに変換し、新しい AOF ファイルに同期するプロセスです。簡単に言えば、同一データに対する複数のコマンドの実行結果を、最終結果データに対応する命令の実行記録に変換します。
たとえば、上記では set name コマンドを 3 回実行しましたが、最終的に必要なのは最後の実行のデータだけです。つまり、最後の実行レコードのみが必要です。
lpush list a b c
に変換できます。ただし、過剰なデータ量によるクライアントのバッファ オーバーフローを防ぐため、list、set、hash、zset
型の各命令は最大 64 個の要素を書き込むことができますコマンド: bgrewriteaof
次に、3-質問 5 では、コマンド ラインで bgrewriteaof コマンドを実行し、appendonly.aof ファイルを確認します。
実行後、ファイルが小さくなり、ファイル内にコマンドが 1 つだけあることがわかります
構成: auto-aof-rewrite-percentage 100 | auto-aof-rewrite-min-size 64mb
トリガー比較パラメーター: aof_current_size | aof_base_size
aof_current_size > auto-aof-rewrite-min-size 64mb が書き換えを開始するとき
この画像はインターネットからのものです
❝学習の継続、ブログの継続、共有の継続は、カカが就任以来常に堅持してきた信念です。 Kaka の記事が巨大なインターネットで見られることを願っています。少しでもお役に立てれば幸いです。次号でお会いしましょう。
❞
redis チュートリアル 》
以上がこの記事では、Redis 永続性の完全版を理解することができます。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。