ただ、Redisのを学習し、多くの場合、RDBとAOF、首振りの目には2つの永続化メカニズムを参照してください、だけでなく、これらの二つのことを学ぶのに時間が地獄で時間をかけ忘れて、これら二つの概念の中国の思い出はいつも感じて知っていますいくつかの厄介。気まぐれ今日は新しい世界を開いた場合は、次のように要約されているように、突然、Redisのプロフィールを見て。
RDBのメカニズム:
保存<秒> <変化> DBに保存されます場合は与えられた秒数と与えられた両方の DBに対する書き込み回数が発生しました。
この文は、我々はデータベースの操作追記することを意味し、そしてこの操作は、永続化のためのデータベースをRedisのだろう
動作以下の例で保存するようになります 後 900秒(15分)場合には、少なくとも1つのキーを変更 した後、 300秒(5分)場合、少なくとも10個のキーを変更 した後に 60秒あれば、少なくとも10000個のキーは変更
その後、1-9のキーを変更する場合はレイズのデフォルトの永続性は、永続化のために、このような戦略に従うこと、および15分後にレイズが永続的になります。
10未満のキーが変化した場合、データベースは5分後に永続的になります。未満10の000キー変更された場合、データベースは、1分後に持続します。私たちは、スナップショットを呼ぶこの戦略に基づいて、データセットは、指定された間隔で生成された時のスナップショット(ポイントインタイムスナップショット) 。スナップショットは、この概念は、この分析の後、非常に無知な音、とあなたは同じ瞬間にこの情報を記録するために、シャッターを押すと瞬時に肉付けこのコンセプトを感じるかもしれません。
注:すべてのコメントすべての「保存」で保存を無効にすることができますライン。 # #すべての以前に設定した保存除去することも可能である 単一の空の文字列引数で保存ディレクティブを追加することにより、#ポイントを 次の例のように#: #1 #は保存「」 保存 900 1 セーブで 300 10を 保存 60万
以来、デフォルトのメカニズムがあるが、また、私たちは、この永続的な間隔で、フォーマット、独自のRedisを設定することができます:+間隔+キーの変更の最小数を保存します。
デフォルト Redisの書き込みを受け付けを停止する場合はRDBのスナップショットが有効になっている #(少なくとも1つのセーブポイント)と失敗したセーブで最新の背景を。 #これは、データが永続化されていません(ハードな方法で)ユーザーに知らせます そうチャンスは誰も気づかないだろうし、いくつかのことをしている、適切にディスク上の#を #1 distaterが発生します。
バックグラウンドの保存プロセスが再び作業を開始します#IFのRedisはなり
#は自動的に再書き込みを許可します。
この永続性戦略に基づいてRedisのは、スナップショットの発効後、このノードの背景が持続操作の後に配置されている場合に実行されることはありません。これが私たちのRedisの永続データの不正確さが存在する可能性があることを意味します。デーモンが再起動された場合にのみ、redsiが自動的に書き込ま動作します。この文は、シナリオがあると仮定し、ということであることを意味します。
ノードRedisのは、かつて永続的なスナップショットにされている場合は、それは私たちの後ろ発生し、バックグラウンド書き込みを持っていた、我々はすぐにRedisのを閉じて、その後、私たちの最後のデータは、上のディスクに永続化されますか?
まず、永続化戦略を満たしているので、これは我々のデータの正確さにつながらない時間間隔に応じて、スナップショット・ノードか否かをこの時間の間に閉じRedisのための2つの内のノードは、格納されています。