redis永続化ストレージデータ
2523 ワード
scrapy-redis分布式で爬虫類を捕まえるとき、redisを永続化して保存するのを忘れ、翌日redisを開くとデータがなくなりました.のだからredisの持続化の問題を研究します...redisは2つの持続化に分けてRDBとAOF方式である.
1. RDB
RDBはスナップショットであり、RDBはファイル接尾辞である.rdbは、ある時点でRedis内のすべてのデータのコピーである.勝手に別のパソコンにコピーしてもいいです.そしてredisを起動したのはデータがあります.rdbのファイル名と格納場所を設定し、redisのredisに書く必要がある.confファイルにあります.
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方式
上の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
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