2.Redis持続化
2727 ワード
redisはメモリデータベースとして高いQPS毎秒クエリーレート(Query Per Second)が特徴です.データの永続化には2つのポリシーがあります.1、RDB 2、AOF
RDBの特性は以下の通りである.
forkプロセスはhash tableを遍歴し、copy on writeを利用してdb dump全体を保存します.save,shutdown,slaveコマンドはこの操作をトリガーします.粒度が比較的大きく、save,shutdown,slaveの前にcrashがあった場合、中間の操作は回復できません.
AOFには次のような特性があります.
操作命令を書き、類似のログファイルに書き続けます.(postgresqlなどのデータベースからsqlをエクスポートするのと同じように、書き込みのみを記録する)粒度が小さく、crash以降、crashのみがログに間に合わない操作ではリカバリできません.
具体的な構成:
redisでconfのプロファイルでは、必要に応じてredisを適切に構成する
RDBの構成関連
AOF構成関連
RDBとAOFが同時に動作する場合
1.RDBがsnapshotting動作を実行している場合、AOFはrewriteされません.AOFがrewriteしない場合、RDBはsnapshotting操作を行わない.2.RDBはsnapshotting操作を実行し、ユーザーがrewrite aofのコマンドを実行した場合、redisはRDBの実行が完了した後にrewriteを実行する.3.RDB snapshotファイルとAOFログが同時に存在する場合、redisは、ログがより完全であるため、データを復元する際にaofをデフォルトで使用します.
AOFのファイルが破損した場合
損傷したaofファイルを修復するためにredis-check-aof--fixを実行します.
RDBの特性は以下の通りである.
forkプロセスはhash tableを遍歴し、copy on writeを利用してdb dump全体を保存します.save,shutdown,slaveコマンドはこの操作をトリガーします.粒度が比較的大きく、save,shutdown,slaveの前にcrashがあった場合、中間の操作は回復できません.
AOFには次のような特性があります.
操作命令を書き、類似のログファイルに書き続けます.(postgresqlなどのデータベースからsqlをエクスポートするのと同じように、書き込みのみを記録する)粒度が小さく、crash以降、crashのみがログに間に合わない操作ではリカバリできません.
具体的な構成:
redisでconfのプロファイルでは、必要に応じてredisを適切に構成する
RDBの構成関連
################################ SNAPSHOTTING ################################
1、save
save 900 1 #15 key save
save 300 10 #5 key save
save 60 10000 #1 key save
2、stop-writes-on-bgsave-error yes/no ( yes)
bgsave , , , no
3、rdbcompression yes/no
, yes,redis LZF , CPU no
4、rdbchecksum yes/no
rdb , CPU , yes
5、dbfilename dump.rdb
6、dir ./
AOF構成関連
############################## APPEND ONLY MODE ###############################
1、appendonly yes/no
AOF
2、appendfilename "appendonly.aof"
3、
appendfsync always # 。
appendfsync everysec # OS cache fsync 。 。
appendfsync no # os cache , 。 。 。 。
4、no-appendfsync-on-rewrite yes/no no
,redis 。 ,
。 aof 。
redis redis aof , 。
rewritef aof , , bgrewriteaof , aof , no-appendfsync-on-rewrite 。
no, , , 。 yes ? appendfsync no, , , ( ), redis , 。 ? linux , 30s 。
5、auto-aof-rewrite-percentage 100
aof , aof 。aof aof , aof ,。 ,aof ( ).
6、auto-aof-rewrite-min-size 64mb
aof , aof , ( ). redis . redis , lastSize aof .
7、aof-load-truncated yes/no
redis , 。 yes。 aof , ( , ), ,yes log , no .
RDBとAOFが同時に動作する場合
1.RDBがsnapshotting動作を実行している場合、AOFはrewriteされません.AOFがrewriteしない場合、RDBはsnapshotting操作を行わない.2.RDBはsnapshotting操作を実行し、ユーザーがrewrite aofのコマンドを実行した場合、redisはRDBの実行が完了した後にrewriteを実行する.3.RDB snapshotファイルとAOFログが同時に存在する場合、redisは、ログがより完全であるため、データを復元する際にaofをデフォルトで使用します.
AOFのファイルが破損した場合
損傷したaofファイルを修復するためにredis-check-aof--fixを実行します.