Redis永続化の詳細

1453 ワード

Redisはメモリ・データベースとして機能し、電源が切れたりredisがダウンタイムしたりすると、メモリ内のデータが失われます.そのため、Redisにも独自の永続化メカニズムがあり、すなわちRDB、AOF方式でRedisデータを永続化する.
1、RDB
RDBはRedisのデフォルトの永続化メカニズムであり、メモリ内のデータセットをディスクに迅速に書き込み、メモリスナップショットを記録する.ダウンタイムが発生してRedisを再起動すると、データはファイルからメモリに再読み込みされます.
# save ""
save 900 1         900    1 key    ,      
save 300 10        300    10 key    ,      
save 60 10000      60    10000key    ,      

RDB方式はデフォルトではオンですが、閉じる場合はsave""コメントを開くことができます
2、AOF
AOF方式は、Redis書き込み操作ログを保存し、Redisダウンタイムが再起動されると、ログファイルのコマンドを順番に1回実行し、データ復旧の目的を達成する.デフォルトではオフになっていますが、構成する必要があります.
appendonly no //      ,      yes
appendfilename "appendonly.aof" //  aof   

#appendfsync allawysec //     redis   ,       ,    
appendfsync everysec   //1    
#appendfsync no        //    os,        

no-appendfsync-on-rewirte no

auto-aof-rewirte-percentage 100 //aof    , aof      64m ,    aof  
auto-aof-rewirte-size 64m

AOF方式は書き込みログ方式の持続化を追加することでaofファイルが大きくなるため、AOFにも独自の書き換えメカニズムがあり、親プロセスはRedisクライアントの書き込み操作を完了し、書き込み操作をキャッシュし、サブプロセスはRedisメモリに一時ファイルを書き込み、親プロセスはサブプロセスを呼び出して両者の書き込み操作を一時ファイルに記録する.サブプロセスが失敗しても、書き込み操作を記録する目的を達成し、最後に親プロセスがaofファイルを置き換え、aofファイル圧縮の目的を達成します.
3、RDBとAOFの比較
1、RDB方式の持続化速度はAOF方式より大きく、AOFは各ステップの書き込み操作を記録し、性能に大きな影響を与える.
2、RDB方式のデータ整合性が悪い;
3、AOFファイルはログ記録を書くにつれて、ますます膨大になり、一旦Redisダウンタイムの再起動時間が長い.選択RDBの再起動時間は比較的短い.
4、一般的には、Redis持続化を行い、RDBとAOFは同時に開かれ、両者の不足を補う.