redis持続化の取捨選択と選択

2170 ワード

永続化


redisはすべてのデータをメモリに保持し、データの更新は非同期でディスクに保存されます.

永続化方式

  • スナップショット1:Mysql dump 2:redis rdb
  • 書き込みログ1:mysql binlog 2:hbase hlog 3:redis aof
  • RDB

    redis    --- RDB(   )   
    redis     ----RDB(   )
    

    トリガメカニズムの主な3つの方式

  • save(同期)
  • bgsave(非同期)
  • 自動
  • saveコマンド


    クライアントがファイルを保存してRDBファイルバイナリを作成するとブロックされます
    ファイルポリシー:新しいRDBファイルが存在する場合、古い複雑さが置き換えられます:O

    bgsave


    1:bgsave 2:fork(依然としてredisをブロックする)3:create RDB 4:bgsave successfullyサブプロセス
    bgsave  
    background saving started
    

    ファイルポリシーと複雑さは同じです

    saveとbgsaveの比較


    コマンド#コマンド#
    save
    bgsave
    IOタイプ
    同期
    非同期
    ブロッキング
    はい
    ブロックされているfork
    複雑さ
    O
    O
    メリット
    メモリを消費しない
    クライアントコマンドをブロックしない
    欠点
    クライアントコマンドのブロック
    forkが必要で、メモリを消費します

    RDBの自動生成


    save構成:60秒で1万件のデフォルト構成を生成
    コンフィギュレーション
    seconds
    change
    save
    900
    1
    save
    300
    10
    save
    60
    10000
    save 900 1 
    save 300 10 
    save 60 10000
    dbfilename dump.rdb 
    dir ./
    stop-writes-on-bgsave-error yes              
    rdbcompression yes               
    rdbchecksum yes              
    
    dbfilename dump-${port}.rdb   
    dir  /bigdiskpath       
    

    トリガメカニズム無視できない方式


    1:フルコピー2:debug reload 3:shutdown
    mkdir data 
    mkdir config  
    rm -rf redis-6382.conf 
    cp ../redis.conf . 
    ll
    vim redis-6379.conf   
    #      
    daemonize        yes
    pidfile   redis-6379.pid  
    logfile "6379.log"
    #save 900 1
    #save  300 10 
    #save 60 10000 
    dbfilename  dump-6379.rdb 
    redis-server redis-6379.conf 
    wq 
    redis-server redis-6379.conf 
    redis-cli 
    dbsize 
    info memory 
    redis-cli 
    set hello world 
    get hello 
    save   
    get hello (   )
    
    bgsave
    Background saving started
    
    redis-cli shutdown  
    redis-server redis-6379.conf  
    dbsize 
    

    RDBまとめ


    1:RDBはRedisメモリからハードディスクへのスナップショットであり、2:saveは通常redis 3:bgsaveをブロックし、redisをブロックしないが、fork新プロセス4:saveの自動構成がいずれかを満たすと実行される5:一部のトリガメカニズムは無視できない