Redisの持続性(RDBとAOF)が継続するには

1、Redisのはなぜ持続性を実現する必要がありますか?

データが失われた後にのみ、Redisのデータがメモリに保存されている場合は、ダウンタイムを回避し、停電や他のシナリオは、プロセスが終了した後、データの損失につながる、プロセスは終了します。持続性のメカニズムは、再起動後のRedisの永続的なデータ復旧に基づいて、ハード・ディスク・メモリにデータを永続化します。

2、Redisの永続的な方法います

永続的な方法にハードディスクに保存されている2.1 RDB、タイムラプススナップショット・プロセス・データ

RDBの永続性をトリガーする方法2.1.1?

2.1.1.1手動トリガ

1. [推奨されません] Redisの保存コマンドは同期動作を保存するには、現在、RDBファイルの形でハードディスクRedisのインスタンスに保存されているすべてのデータのスナップショット(スナップショット)。$の\色{赤} {プロセスは閉塞を引き起こす可能性があり、長い時間のための例は比較的大容量のメモリのために、完全なRDBするまで、現在のRedisサーバをブロックします。このコマンドは、オンライン環境が推奨されません。} $
のコマンドは以下の通りです

redis 127.0.0.1:6379> SAVE 
OK

BGSAVE 2. [推奨] SAVEコマンドRedisのインスタンスをブロックする問題を解決するために、Redisのは、別のコマンドを提供します。
RedisのBGSAVEは、ディスクへのデータベースの現在のデータを保存するためにバックグラウンドで非同期コマンド。

$ \色{赤} {OKを返し、すぐに実行した後BGSAVEコマンドは、その後のRedisは、新しい子プロセスをforkし、オリジナルのRedisのプロセス(親プロセス)は、クライアントの要求を処理し続け、子プロセスは、ディスクにデータを保存するための責任があり、その後、終了します。} $
、次のようにコマンドは次のようになります。

redis> BGSAVE
Background saving started

ブロックする問題に対して明らかにBGSAVE SAVEコマンドは、最適化を行います。したがって、すべての内部Redisのは、関与する
とRDBはBGSAVE動作方法を使用し、SAVEコマンドは廃止されます。

2.1.1.2自動的にトリガ

Redisのは、自動的に次のシナリオでRDBの発注をトリガ:

  • こうした「MNを保存する」として、保存した構成を使用してください。これは、m秒修正データセット内のn倍の存在を示し
    、自動トリガbgsaveを。
  • コピー操作を実行するノードからの全額が実行されている場合は、自動的にbgsaveマスターノードが生成し、RDBノードから文書を送信し、より多くの詳細については、セクション6.3を原則がコピーについて説明し参照してください。
  • Redisのをリロードするデバッグreloadコマンドを実行すると、それが自動的に保存操作をトリガーします。
  • デフォルトでは、ときにshutdownコマンド、開いていないAOFの永続性機能がされている場合
    、自動的にbgsave行きました。

2.1.2 BGSAVEプロセスフロー

BGSAVEコマンド処理
1. bgsaveコマンドの実行は、Redisの親プロセスは、現在のサブ内が実行されたか否かを判定する
コマンドbgsave直接リターンが存在する場合、そのようなRDB / AOFの子プロセスとしてプロセス。

2.子プロセスを作成するには、親プロセスのフォーク操作を、親プロセスのフォーク操作はブロックします、合格
情報の統計を通じてlatest_fork_usecオプションを表示するコマンドを、あなたは最近、操作フォーク消費取得することができ
、マイクロ秒単位で時を。

3.親プロセスフォークの完了後、bgsaveコマンドが返す「背景の節約を開始し、」情報
と親プロセスを詰まらせないだろう、あなたは他のコマンドに応答し続けることができます。

終了後の4子プロセスRDBファイルを作成し、メモリには、親プロセスに応じて、一時的なスナップショットファイルを生成し
、元のファイルが置き換え原子。RDBの最後の世代取得することができますコマンドを実行Lastsave
時、対応する情報統計rdb_last_save_timeオプションを。

このプロセスは、統計を更新するために、親プロセスが親プロセスの完了を示す信号を送信し、特定の参照の
持続性の下でrdb_ *情報関連のオプションを。

RDBのログファイルはどこ2.1.3?

DIRパラメーターは、指定したディレクトリに保存されています。
RDB変更ログファイルの格納ディレクトリのコマンドを実行します。

config set dir {newDir}

RDBは、ログファイル名を変更するためのコマンド:

config set dbfilename {newFileName}

$の\色{赤}、{ディスクやハードディスクが一杯などの場合に悪い状況が発生し、{NEWDIR}オンラインコンフィグセットDIRかもしれ
使用可能なディスク・パスへのファイルパスを変更し、ハンドオーバbgsaveディスクを実行した後、同じことが適用される
永続的なAOFへ$ファイル}の
$ \カラーレッド{} {LZFアルゴリズム圧縮処理を行うためにRDBファイルを生成するのRedisのデフォルトは、圧縮された
ダイナミック|いいえファイルは、あなたは{yesパラメータ設定rdbcompressionを設定できるのは、デフォルトで有効になって、メモリサイズよりもはるかに小さいです}変更。$}
$ \カラーレッド{{} CPUはRDB圧縮を消費するが、ファイルサイズを大幅に低減することができるが、ハードディスクに簡単に
またはネットワークへのノードから、推薦ラインを回しました。} $

2.2 AOF、持続的な高リアルタイムモードをログに記録するログファイルに基づいてコマンドを書きます

永続的な方法の長所と短所の3つを比較

おすすめ

転載: www.cnblogs.com/powerjiajun/p/11569460.html