redis永続化ストレージデータ

2523 ワード

scrapy-redis分布式で爬虫類を捕まえるとき、redisを永続化して保存するのを忘れ、翌日redisを開くとデータがなくなりました.のだからredisの持続化の問題を研究します...redisは2つの持続化に分けてRDBとAOF方式である.
1. RDB
RDBはスナップショットであり、RDBはファイル接尾辞である.rdbは、ある時点でRedis内のすべてのデータのコピーである.勝手に別のパソコンにコピーしてもいいです.そしてredisを起動したのはデータがあります.rdbのファイル名と格納場所を設定し、redisのredisに書く必要がある.confファイルにあります.
# RDB   
dbfilename "dump.rdb"
# RDB   AOF    
dir "/Users/walle/Documents/redisConfig/db"
save 900 1
save 300 10
save 60 10000

4の場合はデータをdumpとして保存することをトリガーすることができる.rdb
 
1.1 SAVEまたはBGSAVEの使用
 
クライアントのredis-cliでは、saveを入力してrdbファイルをすぐに保存できます.この場合、redisは他の操作に応答せず、redisが動作していない場合や軽微な動作を処理している場合に適用され、メモリが増加しないメリットがあります.
bgsaveは、redis forkがサブプロセスを作成し、サブプロセスがスナップショットをディスクに書き込む責任を負い、親プロセスは依然としてコマンドを処理し続け、熱保存に相当し、悪いところはメモリが1倍に上昇する
 
1.2 gbsaveは、どのくらいの時間で書き込み操作数に応じて自動的にトリガーされますか?
 
save
save 900 1は900秒以内に1回書き込み操作があれば保存することを示す
 
1.3 shutdownコマンドは1回saveします
 
redis-cliではshutdownは、一度保存されますが、killが落ちても保存されません.だからshutdownコマンドを使うのはとても重要です.
1.4主従関係が保存される
 
redis-cliでslaveeofでslave redisになった場合、rdbファイルもローカルで生成されます.
参考『Redis-主従レプリケーション』
2.AOF方式
# redis    AOF  ,   no  yes  AOF   
appendonly yes
# AOF  
appendfilename "appendonly.aof"
# AOF       ,always    Redis       fsync      ,           redis   ;everysec          fsync,               ;no                  fsync,Linux      30       
# appendfsync always
# appendfsync everysec
appendfsync no

#      BGREWRITEAOF ,     yes           fsync,         ,      IO    ,         。redis    no  
no-appendfsync-on-rewrite no   
#   AOF             AOF       ,  BGREWRITEAOF  。  
auto-aof-rewrite-percentage 100  
#  AOF    BGREWRITEAOF      ,       Reids              BGREWRITEAOF。  
auto-aof-rewrite-min-size 64mb  
# Redis    ,               (              ,           )
aof-load-truncated yes
#Redis4.0  RDB-AOF       ,          ,AOF            RDB      AOF     ,  RDB              , AOF                    ,  Redis       RDB    AOF      (            ,         ,       )。
aof-use-rdb-preamble yes

上のdirで設定したディレクトリはaofファイルもそこに保存されます.
AOFは、書かれたコマンドをAOFファイルの末尾に書き込むことに相当するので、AOFファイルはRDBファイルよりもかなり大きくなります.各ステップが記録されているからです.したがって、非常に大きくなると、redisはbgrewriteaof操作を実行し、冗長な合成コマンドを削除することができます.デフォルトでは64 MBからこのように判断し始め、2倍になるたびに書き換えてaofファイルのサイズを減らします.
rdbとaofの持続化を同時に使用できます
注意しなければならないのは、aofとrdbを同時に開くと、デフォルトは読み取り専用aofであり、aofファイルが0 kbである場合、rdbにデータがある場合でも、データがないことです.
http://www.waitingfy.com/archives/3227