redis持続化AOF

2387 ワード

AOF = Append Only File
  • aof機能
  • を開く.
    appendonly yes
    
  • aofファイル
  • を指定する
    appendfilename "appendonly.aof"
    
  • aofバックアップファイルを修復する
  • # linux  
    redis-check-aof --fix [aof     ]
    # redis-check-aof redis         
    #         aof           
    #               aof      ,        redis         
    
  • Appendfsync
  • #      
    appendfsync always
    #      ,                ,    ,         
    
    appendfsync everysec
    #       ,    ,    ,       ,     
    
    appendfsync no
    # no                  
    #           
    
    
  • rewrite
  • とは何か:AOFはファイルの追加方式を採用して、ファイルはますます大きくなって、このような情況を避けるために、書き換え機構を新たに追加して、AOFファイルの大きさが設定した閾値を超える時、RedisはAOFファイルの内容の圧縮を起動して、データを回復することができる最小の命令セットだけを保留して、命令bgrewriteaof
  • を使うことができます
  • 書き換え原理:AOF私のファイルが成長し続け、大きすぎると、forkはファイルを書き換えるためのプロセス(一時ファイルを先に書いてからrename)を作り出し、新しいプロセスのメモリのデータを遍歴し、それぞれにset文が記録されている.aofファイルを書き換える操作は、古いaofファイルを読み取るのではなく、メモリ全体のデータベース内容をコマンドで新しいaofファイルを書き換えた点で、スナップショットと少し似ています.
  • トリガメカニズム:Redisは、前回の書き換え時のAOFサイズを記録します.デフォルトでは、AOFファイルサイズが前回のrewriteの2倍で、ファイルが64 Mより大きい場合に
  • がトリガされます.
    #      redis.conf   ,       
    auto-aof-rewrite-percentage 100
    auto-aof-rewrite-min-size 64mb
    
  • No-appendfsync-no-rewrite:書き換え時にappendfsyncを運用できるかどうかはデフォルトnoで、データの安全性を保証する
  • の利点:永続化保存されたデータは
  • と比較的完全である.
  • 劣勢:
  • 同じデータセットのデータではaofファイルはrdbファイルよりはるかに大きく、回復速度はrdb
  • より遅い.
  • AOFの実行効率はRDBより遅く、毎秒同期ポリシーの効率は比較的良く、非同期効率はRDBと同じ
  • である.

  • まとめ
  • AOFファイルは、追加のみを行うログファイル
  • である
  • redisがaofファイルの体積が大きすぎる場合、自動的にバックグラウンドでaofを書き換える
  • .
  • aofファイルはデータベースに対して実行するすべての書き込み操作を秩序正しく保存しており、これらの書き込み操作はredisプロトコルのフォーマットで保存されているため、aofファイルの内容は非常に読みやすく、ファイルの分析も容易である
  • .
  • 同じデータセットの場合、aofファイルの体積は通常rdbファイルの体積
  • より大きい.
  • 使用するfsyncポリシーに従って、aofの速度はrdb
  • よりも遅くなる可能性がある.
  • RDB永続化方式は、指定された時間間隔であなたのデータをスナップショット記憶することができる
  • AOF永続化方式は毎回サーバーに対して書く操作を記録して、サーバーが再起動する時これらの命令を再実行して元のデータを回復して、AOF命令はredisプロトコルで毎回書く操作を追加してファイルの末尾まで保存して、RedisはまたAOFファイルに対して後台の書き換えを行って、AOFファイルの体積が大きすぎないように
  • キャッシュのみ:サーバが実行されている間にデータが存在することを望んでいる場合は、永続化方式
  • は適用されません.
  • は同時に2つの持続化方式
  • を開く.
          , redis          aof          ,
            aof          rdb           .
    
    RDB      ,                aof  .
           AOF ?
        ,  RDB          (AOF         ),
        ,     AOF    bug,