Redisの永続性知識-RDB + AOF

EDITORIAL

Redisのは、キーと値の高性能分散データベースです。これは、シナリオキューの様々な環境下でのデータ構造の多様性がキャッシュに適用することができサポート、など

すでに述べたように、クラスタのアプローチを書かれ、Redisの上雪崩に浸透。

Redisの+ 3つのクラスタを浸透させる方法と雪崩予防と解決

本論文では、RDBとAOFの深い理解の原則のロジックと持続性の両方の、友人のような少し注意して転送し、自分の兄を書かれていないが一緒に進歩を遂げるためには、あなたに感謝し、また、批判や訂正がたくさんあります。

Redisの永続性知識-RDB + AOF

RDB原理

ローカルディスクのスナップショットとして保存されているメモリのRedisのデータの存在があるRDB永続ストレージ

RDB永続的な強みと弱み

優位

  • データ・スナップショット・ファイルの実装、フルバックアップは、データの伝送を容易にする。例えば、我々は、ファイルのRDBに直接コピーすることができ、上記サーバBにサーバA上のバックアップファイルを転送する必要があります。
  • ファイルには、サービスの再起動時にデータファイルをロードし、AOFの方法よりも高速に圧縮されたバイナリファイルです。

恵まれません

  • 原因のRedisのさまざまなバージョン間の互換性の問題に、保存するために暗号化されたバイナリファイル形式をRBDも、バージョンの互換性の問題使用できなくさらに他のRedisのバージョンでRDBを主導しました。
  • 時間Redisのサービスの一定期間が異常である場合RDBリアルタイムバックアップがないので適時は、容易に不完全なデータをもたらす、悪い、メモリデータの損失、この期間からのデータは復元できないので、容易にデータの損失につながります。

手動バックアップ

saveコマンドとbgsaveコマンドによる手動バックアップ。同期ブロッキングを保存し、bgsaveはノンブロッキングである(フォークをブロックし、実際に子供の中で発生します)。したがって、我々が使用する実際のプロセスでは、主にbgsaveバックアップ・コマンドであります

自動バックアップ

  1. 構成アイテムを保存MN変更することは、コマンドがバックアップにm秒以内にn回実行されることを意味します。
  2. 複製要求がサーバRedisの項目マスタサーバから送信された場合、マスタファイルはbgsaveのRBDのコマンドを使用して生成し、サーバーに送信されます。
  3. デバッグreloadコマンドを実行すると、saveコマンドのRDBファイルを使用します。
  4. 同時に採用される永続性を行う方法bgsave持続性を達成するためのAOF方法は有効でない場合は、サービスをオフにするには、shutdownコマンドを使用している場合、後にシャットダウンバックアップパラメータを追加することができます[NOSAVE |保存]

永続ストレージの実装原理をbgsave

Redisの永続性知識-RDB + AOF

  1. コマンドを実行Bgsave、Redisの親プロセスの子プロセスが直接のリターンがあれば、現在、そこに実行されているか否かを判断します。
  2. 父のプロセスフォークの子プロセス(閉塞例原因でプロセスフォーク)は、このプロセスは、情報の統計が最後のトランペットフォーク動作時間を表示するlatest_fork_usecオプションを表示するコマンドを使用することができ、単位は微妙です。
  3. 親プロセスのフォークが完了した後、それは情報プロンプト背景節約ブロックを解除するためにforkし、その後、開始返します。
  4. 子プロセスをfork始める親の一時的なメモリ・データ・スナップショット・ファイルに基づいて実行されている、その後、元のファイルを置き換えます。最後の世代の時間RDB、rdb_last_save_timeオプションで対応する情報を表示するlastsaveコマンドを使用します。
  5. バックアップは、親プロセスに情報を送信するために完了すると完了すると

RDBファイルの保存処理

  1. Redisのは、今の子供と親と、フォークを呼び出します。
  2. クライアント要求の処理を継続するために、親プロセスは、子プロセスは、メモリの内容に責任がある一時ファイルに書き込まれます。レプリケーションメカニズム(書き込み上のコピー)するので、親と子のシェアのOSを書く親プロセスが処理する同じ物理ページには、書き込み要求のOSの親プロセスではなく、共有されているページを書くよりも、変更したいページのコピーを作成します。したがって、子プロセスのアドレス空間内のデータは、データベース全体のフォーク瞬間のスナップショットです。
  3. 子プロセスは、スナップショットが完了すると、一時ファイルを書き込むときに、一時的なスナップショット・ファイルと元のファイルを交換して、子プロセスが終了

フォーク操作は読み取りと書き込み性能のRedis、その結果、ブロックされます。我々はできるだけ時間消費Redisのフォークはるかに低減するために、個々の最大メモリRedisのインスタンスを制御することができ、又は自動的にフォークの周波数を制御するトリガーの数を減らし

AOF原理

AOF全体プロセスは、一般的に2つのステップに分けることができる視聴、ステップ(それはappendfsync everysec構成であれば、そこ1S損失)リアルタイムコマンドを書き込むことで、第二のステップは、AOFファイルの書き換えであります

  1. コマンドを書きます
  2. aof_bufに追加
  3. ディスクに同期さAOF

AOFの長所と短所

利点

  • 複数のファイル書き込み(FSYNC)戦略。
  • リアルタイムのデータ・ストレージ、データの整合性と強い。でも、いくつかのデータの損失であれば、だけでなく、データの損失の1秒以内までの良い戦略を開発します。
  • データがテキストプロトコルフォーマットを格納するために使用されているので可読、動作コマンドの直視を有することができるだけでなく、手動でコマンドを書き換えることができます。

短所

ファイルのサイズが大きすぎる、原因ログレコードはRedisの操作、いくつか無効であるAOFへRBDよりも読み込み速度も遅い、AOFファイルで、その結果、記録されます操作を簡素化するには大きすぎる。しかし、道は、ポリシーは、ファイルによって上書きすることができます最適化。

AOF永続ストレージの実装原理

Redisの永続性知識-RDB + AOF

  1. Redisの書き込みコマンドは、この時点での書き込みコマンドは、地域からのaof_bufの変化をRedisのだろう。
  2. ログファイルベースのバックアップ戦略の実装に書き込まれたデータバッファ。
  3. ときAOFますます大容量のファイルは、圧縮ファイルを達成するために、当社の構成戦略AOF書き換える量の削減に応じて実装されます。
  4. Redisの再起動は、ファイルAOF負荷を書き換える場合は、データ回復の目的を達成します。

AOFまたはRDBデータの永続性を選択します

  1. 異なる状況を選択するために、我々は2つの方法の組み合わせを使用することをお勧めします。
  2. データセキュリティのために、高い整合性がAOF方法が必要です。
  3. 以下のために重要なデータはRDBのように使用することができます。
  4. フルバックアップデータの場合、データのバックアップRDBの方法を採用することができる容易にします。

この記事では注目と賞賛、感謝の友人の少しのように、終了します!

おすすめ

転載: blog.csdn.net/qwe123147369/article/details/92702004