Redisの構成と持続性


redisはK/V構造の非関係型データベースであり,分散シーンに多く用いられる.
redisのプロファイルは前の記事で述べたように、次にこのプロファイルの内容を見てみましょう.
grep ^### /etc/redis.conf                   
################################## INCLUDES ###################################   //
################################## NETWORK #####################################  //     
################################# GENERAL #####################################   //       
################################ SNAPSHOTTING  ################################   //     ,   
################################# REPLICATION #################################   //     
################################## SECURITY ###################################   //     ,     
################################### LIMITS ####################################   //       ,     、      
############################## APPEND ONLY MODE ###############################   //AOF,   
################################ LUA SCRIPTING  ###############################   //lua     
################################ REDIS CLUSTER  ###############################   //redis     
################################## SLOW LOG ###################################   //      
################################ LATENCY MONITOR ##############################   //
############################# EVENT NOTIFICATION ##############################   //       
############################### ADVANCED CONFIG ###############################   //     

GENERAL構成セグメント
daemonize no  #            
supervised no
pidfile /var/run/redis/redis.pid  #    
loglevel notice                   #       
logfile /var/log/redis/redis.log  #         
databases 16
#       ,   16 ,            , 0    ,         0

NETWORK構成セグメント
bind 127.0.0.1   #   ip  ,            ip  ,0.0.0.0          
port 6379   #      
protected-mode yes  #      ,     bind      auth         
tcp-backlog 511
timeout 0   #         ,0      
tcp-keepalive 300   #tcp       ,    

SECURITY構成セグメント
requirepass centos
#  requirepass    ,       ,      ,    :

redis-cli
127.0.0.1:6379> SELECT 14
(error) NOAUTH Authentication required.
127.0.0.1:6379> AUTH centos
OK
127.0.0.1:6379> SELECT 14
OK
127.0.0.1:6379[14]> 
#      ,               

LIMITS構成セグメント
 maxclients 10000   #       ,      redis             
 maxmemory    #        ,        ,     。redis        ,           
 maxmemory-policy noeviction   #               ,            。  noeviction         volatile-lru, allkeys-lru
 maxmemory-samples 5

SLOW LOG構成セグメント
slowlog-log-slower-than 10000   #     ,  redis                  
slowlog-max-len 128   #          

ADVANCED CONFIG構成セグメント
hash-max-ziplist-entries 512   #hash         
hash-max-ziplist-value 64   #hash            ,     
#            
client-output-buffer-limit normal 0 0 0   # 0           ,normal     
client-output-buffer-limit slave 256mb 64mb 60   #    256mb,    64mb,        60s,slave    
client-output-buffer-limit pubsub 32mb 8mb 60   #                      ,redis       ,pubsub   

以上、redisプロファイルのコンフィギュレーション項目の説明ですが、以下、redisの永続化特性について説明します.
redisのデータはメモリに格納されていますが、デバイスが再起動するとディスクからデータを読み取り、redisデータベースを再構築する必要があります.これはredisの永続化機能に使用されます.
2つの永続化の実装:
RDB snapshotting
特徴:
バイナリフォーマット;事前にカスタマイズされたポリシーに従って、メモリからディスクにデータを周期的に同期します.データファイルのデフォルトはdumpです.rdb
AOF ppend Only File, fsync
特徴:
指定したファイルの末尾に書き込むたびに実現される持続性を記録する.redisが再起動されると、ファイル内のコマンドを再実行してメモリからデータベースを再構築できます.
RDBの関連構成:SNAPSHOTTING構成セグメント
save  
save 900 1   # 900     1               
save 300 10  # 300     10              
save 60 10000   # 60        10000          
#  RDB          ,              
stop-writes-on-bgsave-error yes   # bgsave                 ,bgsave     
rdbcompression yes   #    
rdbchecksum yes   #     
dbfilename dump.rdb   #  rdb  ,         
dir /var/lib/redis   #            ,                 IO  

       SAVE BGSAVE             ;
                SAVE:  ,          ,            ,       ;
                BGSAVE:  ;backgroud,          ,          

AOF配置:APPEND ONLY MODE配置セグメント
appendonly no   
appendfilename "appendonly.aof"   #aof    
appendfsync everysec   #        aof     ,         ,        1     ,            IO  
no-appendfsync-on-rewrite no   #       aof       fsync,   no,    。
auto-aof-rewrite-percentage 100   #              100%      aof    ,       100mb,           100mb      aof
auto-aof-rewrite-min-size 64mb   #  aof      ,     aof          64mb

両者の違いをまとめる:
1)RDBとAOFは同時に行われず、同時にオンの場合はAOFが優先される.
2)RDBは既定のポリシーに従って、定期的にメモリからディスクに同期する操作を実行し、欠点はポイント還元ができないことである.
3)AOFは書き込み操作毎または毎秒メモリデータを指定ファイルの末尾に追従し、時点還元が可能である.欠点は頻繁なIO操作である.
注意:永続的なメカニズム自体がバックアップに取って代わることはできません.バックアップポリシーを作成し、redisライブラリを定期的にバックアップする必要があります.
の最後の部分