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の構成関連
################################ 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を実行します.