Redis持続化RDBとAOF(二):AOF

2545 ワード

Redis持続化RDBとAOF(一):RDB

1、紹介


AOF(append only file)は、実行されたコマンド(要素に変更されたコマンドのみを含む)をファイルに追加して記録し、redisが再起動されると、このファイルのコマンドをすべて実行してメモリにデータを復元する効果があります.

2、AOF持久化方式


AOF永続化方式はデフォルトではオンではありません.プロファイルを変更する必要があります.

2.1、構成ファイル


aofを開き、appendonly値をyesに変更します.
############################## APPEND ONLY MODE ###############################
#   aof  ,   no
appendonly yes

2.2、AOFファイル紹介


aofファイルには、実行した書き込みコマンド(要素を更新するコマンド)が記録されています.
2.2.1、aof生成の位置を配置する
#             ,        
appendfilename "appendonly.aof"

2.2.2 aofファイルの修復
aofファイルに問題が発生した場合、独自の修復ツールでデータの大部分を修復できます.
 redis-check-aof --fix   aof   

2.2.3、操作命令を追加する規則
appendfsyncプロファイルは、追加のコマンドを保存する方法を構成します.
#           : 
# always      ,           ,         
# everysec      ,    ,  redis         
# no    
appendfsync everysec

3、書き換えメカニズム


3.1、基本紹介の書き換え
このファイルには書かれたコマンドが記録されているので、このファイルは非常に大きいに違いありません.このとき書き換えメカニズムの使い道が来た.元appendonly.aofファイルの内容は以下の通りです.
set key1 1
incr key1
incr key1
incr key1

書き換え後:
set key1 5

メリットは明らかです.私たちはいつ読み直すかを構成することができて、頻繁に読み返すのもよくありません.彼もFork(類似サービス)のサブプロセスでメモリのデータを読み、現在のデータでコマンドを生成する必要があります.例えば、ライブラリのkey 1の値が5であれば、set key 1 5というコマンドを生成し、どのように5に来ても構いません.また、書き換え中に古いappendonlyは読み取られなかった.aofファイル.
3.2、トリガ条件の設定
次の2つのパラメータは、現在のappendonlyを表しています.aofファイルは前回の2倍のサイズで64 Mより大きい場合に書き換えを実行します.
auto-aof-rewrite-percentage 100  #            ,100   
auto-aof-rewrite-min-size 64mb   #          ,   64MB          G

3.3、アクティブトリガコマンド
bgrewriteaof  #         

4、優勢


データ損失が少なく、実行されたコマンドが記録され、RDB方式のように条件の達成を待つ必要がなく、永続化が開始される.

5、劣勢


1、aofのファイルはrdbファイルよりはるかに大きく、redisを再起動した後もrdbよりもデータの回復速度が遅く、1行のコマンドが実行されると思っています.2、永続IO操作3、書き換え操作が行われた場合、新たなデータが書き込まれるとブロックされる.できるだけ書き換えの頻度を減らすべきで、基礎の大きさの64 MBは小さすぎて、いくつか大きいことを設けるべきです