Redisの持続性
A、RDB永続的なスナップショット
RDB:Redisのデータベース
1.はじめに
- 指定された時間間隔内に、メモリ内のデータセットは、ディスクのスナップショットに書き込ま
2.特長
- Redisのは、プロセス、代わりに最後の永続生成されたファイルの後、この一時ファイルの最後まで持続し、一時ファイルに、意志最初の書き込みデータを永続化するために、子プロセスを別の(フォーク)を作成します。
- プロセス全体を通じて、任意のI / O操作なしのメイン処理は、高い性能を確保するため
- あなたは回復されたデータ、AOFよりも効率的なRDBウェイウェイの整合性に非常に敏感で、大規模なデータを復元し、ないようにする必要がある場合。
- 欠点は、最後の時間は、永続的なデータが失われることです。
3.Fork
- 現在のプロセスと同じプロセスのコピーは、新たなプロセスは、すべてのデータ値は、元のプロセスと一致しているが、これは新しいプロセスであり、元のプロセスの子プロセスとして
4.持久化
4.1。設定ファイル
save 900 1 ##15分钟修改1次
save 300 10 ##5分钟修改10次
save 60 10000 ##1分钟修改了10000次
stop-writes-on-bgsave-error yes ##后台出错是否接受写操作 yes/no 不接受/接受
rdbcompression yes ##是否压缩对RDB文件压缩 yes/no 压缩/不压缩 不压缩存储速度快,但浪费空间
##redis使用LZF压缩RDB文件
rdbchecksum yes ##Redis是否使用循环冗余检验,启用会保证文件的完整性,但会消耗10%系统性能
##若追求效率可关闭此项。Redis使用的是CRC64。
dbfilename dump.rdb ##RDB文件的名字
dir ./ ##配置RDB文件和AOF文件的存储路径
- プロファイルの設定、デフォルトのトリガー:(=保存「」キャンセル)
- 15分1つの改訂
- 5分10は、修正します
- 1分1万回を改訂しました
- このコマンドは、bgsaveを保存しました
- 保存:ちょうどセーブにかかわらず、他の、全てのブロック
- bgsave:Redisのは、バックグラウンドで非同期に保存
- RDBはdump.rdb保存されます
- コマンドflushallは:dump.rdbファイルが生成されますが、内部は空と意味がありません
4.2。メリット
- 合理的な構成では、データベースのコピーを保存するための時間にRedisの時間をできるように、簡単に、時間内の特定のポイントにデータを復元することができます。
- スペースに比べRDBファイルAOFは、データ復旧の小さい、速いスピードで占領しました。
- ファイルは時にRDBエラー作成された場合、それは以前に保存したバージョンのエラーには影響しませんので、Redisのは、元のファイルを置き換えるために使用されることはありません。
4.3弱点
- Redisの事故がダウンしている、それはデータの損失を引き起こす可能性があり
- フォーク、データメモリが考慮されるべき尺度を有するクローン、約2倍の膨張であります
どのように停止するには:
- 「」=保存
二、AOFログの永続性
AOF:追加ファイルのみ
1.はじめに
- すべてのアクションを記録するログの形で(レコードを読んでいません)
- ディスク・プロセスに書き込ま
1)サーバは、書き込み動作のための要求を受信し、コール・ライト(2)メモリバッファに要求を書き込みます。
2)Redisの又はバッファ内のデータFSYNCオペレーティングシステムコールは、ディスクキャッシュに書き込まれます。
キャッシュ物理媒体で3)ディスク書き込みデータ。(ほとんどのディスクは読み取り専用の書き込みは物理メディアに直接書き込まれますので、開いているバッファ)
2.特長
- 唯一の追加、書き換えません
- Redisのは、ログファイルの内容に基づいて上前方から後方にデータを復元し、完全に実行するための命令を書きます、つまり、データを再構築するために、ファイルを読み込んで、Redisの再起動先頭から開始します
- AOFは、RDBと共存することができます
3.プロファイル
appendonly no ##AOF开关
appendfilename "appendonly.aof" ##AOF文件名字
appendfsync everysec ##持久化
no-appendfsync-on-rewrite no
##执行重写时是否阻止调用fsync yes/no 阻止/不阻止,若阻止则会损失一部分数据
auto-aof-rewrite-percentage 100
##控制自动重写AOF文件的规则,会自动记录最后一次操作占文件的百分比,
##若超过设定的百分比则会自动重写AOF文件,若设为0则不会重写
##AOF的重写流程跟RDB一样。所以在新的AOF文件完全写入之前发生的写操作,都会写入旧的AOF文件以及缓存中
auto-aof-rewrite-min-size 64mb ##重写AOF文件的最小值为64mb
aof-load-truncated yes
##当设置为yes时,若aof文件不完整会尽可能加载多的数据,然后记录错误
##当设置为no时,服务器会拒绝启动,此时用户可以使用redis-check-aof工具修复损坏的AOF文件。
dir ./ ##AOF文件储存路径,RDB文件也会储存在此
4.持久化
- Appendfsync
- 常に:同期の永続性、データの変更が即座にディスクに記録されているすべてのパフォーマンスの低下が発生したが、より良いデータの整合性
- Everysec:工場出荷時の勧告、非同期操作、ダウンタイムの1秒以内ならば、毎秒を記録し、データの損失
- 番号:非同期の
リライト:
- はじめに:
- 追加のファイルを使用してAOF方法は、ファイルがAOFファイルのサイズが設定されたしきい値を超えた場合に、このような事態が発生した新しい書き換えメカニズムを回避するために、はるかになり、Redisのは、ファイル圧縮AOF内容が開始されます最低限の予約は、コマンドbgrewriteaofで、命令のセットのデータを回復することができます
- 原則として書き換え:AOFファイルが成長し続け、大きすぎる、それはファイルを上書きするという点で新しいプロセスをフォークします。AOF書き換え動作ファイルは、古いAOFファイルを読み取れませんが、コマンドを使用して、メモリ内のデータベース全体の内容は、AOFファイルの新しい方法を書き換えます。
- トリガータイミング:Redisのは、AOFファイルサイズは最後の書き換え後に倍増し、ファイルサイズが64Mトリガーより大きけれされたときにAOFは、デフォルト設定のサイズを書き換え、最後の時間を記録します
AOF保存はappendonly.aofです
4.1利点
- 同期パー:appendfsyncは、常にデータの変更が即座にディスクに記録されますが発生永続するたびに同期させ、パフォーマンスが悪いが、より良いデータの整合性であります
- 各修飾同期:appendfsync everyseclways非同期動作、記録第1秒の停止時間であれば、データの損失
- 同期していない:決して同期
4.2欠点
- 同じデータファイルAOF用語の中のデータセットは、RDBより遅いRDBファイルの回復よりもはるかに大きいです
- Rdbは、秒あたりのより良い同期戦略よりも低速運転効率AOF、同じポリシーが同期され、RDBされていません
どのように停止するには
第三に、要約
-
RDB永続的には、指定した時間にあなたのデータのスナップショットを保存するために間隔を置いて配置することができます
Redisのにサーバの再起動は、元のデータを復元するために、これらのコマンドを再実行しますと、サーバーへの各書き込み操作記録の永続的AOFコマンドAOFファイルAOF音量が大きすぎ意志ではないのでことを、書き換えられた背景にAOFファイルでも、ファイルの末尾にRedisのを、各書き込み操作を保存するために追加のプロトコル
のみキャッシュ:あなたは自分のデータはサーバが動作しているときに存在する場合は、あなたは、任意の永続的な方法を使用することはできません。
永続モードのオープン2種類同時に、- この場合、ファイルデータは、データセットのファイルはRDBよりも完全に保存されるように設定AOF通常の状況下で保管として、元のデータを復元するために再起動優先負荷AOFファイルをRedisの。
RDBのデータはリアルタイムではありませんサーバーが再起動されている間、それだけで、両方のAOFファイルを見つけます。ただAOFそれにそれを使用しないでください?著者はRDBは、高速再起動(悪いバックアップを変更するにはAOF)のデータベースをバックアップするために、より適しているため、推奨されていない、そして潜在的にバグの場合のように保つことができるAOFを持っていません。手段。
パフォーマンスの考慮事項 - RDBファイルだけなので、バックアップを目的として、それが唯一のスレーブ永続的なRDBファイルに推奨され、そして限り、15分バックアップ一度しか保存900 1この規則を残して、十分です。Enalbe AOF場合、利点はそれだけで失うこれ以上データの2秒よりも、起動スクリプトは単純にそれに独自のAOFファイルをロードする最悪のケースです。まず、持って来るためにコストが10秒を持続し、最終的に書き換え時に生成された新しいデータが新しいファイルによって引き起こされる障害物のAOF書き換えはほぼ避けられないと書きました。長いハードディスク許す限り、基本的なデフォルト値64Mサイズを書き換え周波数AOF書き換え、AOFを最小限に抑える必要があるとして、それは、5G以上に、あまりにも小さく設定することができますされています。デフォルトのサイズは元のサイズの100%以上が適切なオーバライド値に変更することが可能です。あなたがAOFを有効にしない場合、単独のマスタースレーブレプリケーションは、高い可用性を実現することができます。システム10の多くはまた、書き換え時間の変動性を低減し保存することができます。価格はマスター/スレーブの場合は同時に、排水データの10分を失っただけでなく、起動スクリプトは、新しいものをロードするには2つのマスタ/ RDBファイルスレーブを比較します。このアーキテクチャの選択にシーナマイクロブログ
RDB AOF道
高の低レベルの最適化を開始するには
、ボリューム大の小さな
回復速度速度
政策決定に応じてデータセキュリティ、データ損失
の重大度重大度を - この場合、ファイルデータは、データセットのファイルはRDBよりも完全に保存されるように設定AOF通常の状況下で保管として、元のデータを復元するために再起動優先負荷AOFファイルをRedisの。