redis永続化、RDBスナップショットストレージ、AOFファイルのみ追加

3282 ワード

文書ディレクトリ
  • 永続化、RDBスナップショット記憶、AOF追加ファイルのみ
  • RDBスナップショット記憶
  • AOFファイルのみ追加
  • 持続化の選択方法
  • 永続化、RDBスナップショットストレージ、AOFファイルのみ追加
  • redisはディスクにデータを書き込み、ダウンタイムまたはダウンタイム後にredisを再起動したときにディスクのバックアップデータをメモリにロードして使用を再開することができる.これはredisの持続化です.持続化には以下の2つのメカニズムがある.

  • RDBスナップショットストレージ
  • redisはメモリ内のデータをディスクに書き込んで永続化できる.永続化を行うと、redisはサブプロセスを作成して実行します.
  • redisはスナップショット持続化機構をデフォルトでオンにしている.
  • 仕組み:
  • forkが1つ データ永続化に特化し、メモリ内のすべてのデータを1つのrdbファイルに保存する(デフォルトはdump.rdb)
  • redis再起動後、rdbファイルのデータがメモリにロードされる
  • トリガ方式
  • 配置中設定
  • SAVE|BGSAVE|SHUTDOWN(自動永続化ポリシーが設定されていることが前提)
  • BGSAVE:実行BGSAVEコマンド、手動トリガRDB持続化
  • SHUTDOWN:redisを閉じるとトリガー
  • 関連配置
      save 60 1000  #              60       1000 ,       
      stop-writes-on-bgsave-error no  #        ,         
      rdbcompression yes  #            
      dbfilename dump.rdb  #         
      dir ./ #          
    
      save   #   RDB  
    
  • メリット:
  • データのバックアップが容易: 個別のファイル`では、データのバックアップが容易(タイミングタスクを使用して、タイミングでファイルをデータバックアップセンターに送信できる)
  • 書き込み時コピー`:サブプロセスは単独で永続化操作を完了し、親プロセスはIO操作に参加せず、redis性能を最大化する
  • 大量のデータを復元する場合、AOFより速度が優れている
  • 短所:
  • データをリアルタイムで保存していない`、redisが予期せぬ停止(電源切れなど)した場合、しばらくデータが失われる可能性がある
  • データ量が大きいとforkプロセスが遅くなり、永続化するとredis応答速度が遅くなる

  • AOFファイルのみ追加
  • redisは、実行されたすべての命令をファイルに追加して永続化記憶することができ、これはredisのもう一つの永続化メカニズムである.
  • redisデフォルトではAOFメカニズムがオンになっていない.
  • Append-only fileファイルのみ追加
  • 追加のみ
  • データではなく
  • 仕組み
  • メインスレッドが aof_に追加buf(バッファ)では、使用するポリシーによって異なる キャッシュ領域のコマンドをaofファイルに書き込む(サブプロセスを使用しない)
  • redisが再起動するとaofファイルのコマンドを再実行してデータを復元する
  • RDBを同時にオンにした場合はAOFを優先する
  • ファイル修復
  • AOFエラー(ディスクがいっぱい/書き込み中にダウンタイムなど)が発生した場合、redis再起動時に当該AOFファイルの使用を拒否する
  • 修復手順
  • まずAOFファイルをバックアップ
  • redis-check-aofツールによる修復(末尾に復旧できないコマンドは削除するのが一般的)
  • redisサーバを再起動し、修復されたAOFファイルを自動的に読み込み、データ復旧を行う

  • ファイル書き換え/圧縮
  • AOFは、AOFファイルが大きすぎないように書き換え/圧縮機構(最適化命令)を提供している
  • forkサブプロセスでAOF書き換え完了
  • 関連配置
    appendonly no  #     AOF  
    appendfsync everysec  #                   
    no-appendfsync-on-rewirete no  #   aof           
    auto-aof-rewrite-percentage 100  #       aof  ,  aof             aof       
    auto-aof-rewrite-min-size 64mb  #       aof  , aof      64mb 
    
    appendfilename appendonly.aof  # aof   
    dir ./  # aof       ( rdb       )
    
    
    AOF         
    # appendfsync always  #           
    appendfsync everysec  #        ,  
    # appendfsync no  #               
    
  • メリット
  • より信頼性の高い`デフォルトは毎秒1回の操作を同期し、最大1秒のデータを失う
  • 3つのポリシーが用意されているが、同期しなくてもよい/書き込みごとに同期してもよい
  • AOFファイルが大きすぎないようにできる
  • 短所:
  • 同じデータセット、AOFファイル比RDB
  • 非同期の場合を除き、RDB`より速度が遅いことが多い

  • 永続化の選択方法
  • , redisによる永続化ストレージを選択可能
  • RDB or AOF
  • データセキュリティの要求が高く、すべてオープン
  • 短時間でのデータロスが許容できるRDBのみ
  • AOFを使用してもRDBをオンにすることが望ましい.バックアップが容易で回復速度が速いためバグが少ない
  • プロジェクトでの応用
  • redisによるデータの一部の永続化ストレージ
  • ユーザーの閲覧履歴/検索履歴