Pythonネットワーク爬虫類(Day 02-2)


Pythonネットワーク爬虫類(Day 02-2)


Redisプロファイルの詳細(redis.conf)

  • 1.vim redis.confを介して構成
  • に入る.
    daemonize yes #         
    
    pidfile /var/run/redis/redis-server.pid    #pid    
    
    port 6379#    
    
    bind 127.0.0.1   #    ,       ,  0.0.0.0
    
    timeout 300     #      ,   
    
    loglevel notice  #    ,   :
    
    # debug :        
    
    # verbose :     
    
    # notice :       
    
    # warning :          
    
    logfile /var/log/redis/redis-server.log   #      
    
    syslog-enabled no    #            
    
    databases 16#       ,      0
  • 2.スナップショット方式
  • ave 900 1    # 900s(15m)  ,   1 key    ,   
    
    save 300 10   # 300s(5m)  ,   10 key    ,   
    
    save 60 10000  # 60s(1m)  ,   1000 key    ,   
    
    rdbcompression yes   #dump       
    
    dir /var/lib/redis   #   (dump.rdb)      
  • 3.マスタスレーブレプリケーション
  • slaveof    #      ,    redis  slave    redis
    
    masterauth    # master      ,slave      master    
    
    slave-serve-stale-data yes     # slave master        slave   master       ,   slave  ,    yes ,slave      ,       ,    no ,slave   "SYNC with master in progress"    。 INFO SLAVEOF    。
  • 4.安全
  • requirepass foobared   #  redis      
  • 5.制限
  • maxclients 128#       ,0    
    
    maxmemory #      ,      ,       :
    
    # volatile-lru :    ,         key  LRU    
    
    # allkeys-lru :        key
    
    # volatile-random :         key
    
    # allkeys-random :      key
    
    # volatile-ttl :       key
    
    # noeviction :   ,       
    
    maxmemory-policy volatile-lru#    maxmemory ,     
    
    maxmemory-samples 3   #      3 key,          
  • 6.追加モード
  • ppendonly no    #AOF   ,          ,  redis   (  )         
    
    appendfilename appendonly.aof  #         
    
    # AOF         :
    
    # appendfsync always   #              appendonly.aof
    
    # appendfsync everysec  #    ,       appendonly.aof
    
    # appendfsync no       #   ,       
    
    no-appendfsync-on-rewrite no   # AOF               ,redis    BGREWRITEAOF      AOF    。
  • 7.仮想メモリ
  • vm-enabled no      #          ,            ,         swap ,     ,        
    
    vm-swap-file /var/lib/redis/redis.swap   #        
    
    vm-max-memory 0    #redis         ,  redis               
    
    vm-page-size 32    #        32  
    
    vm-pages 134217728  #  swap       
    
    vm-max-threads 4    #  swap      
  • 8.高度な構成
  • hash-max-zipmap-entries 512   #      (  )           ,               
    
    hash-max-zipmap-value 64     #      value           ,               
    
    list-max-ziplist-entries 512  #list                       
    
    list-max-ziplist-value 64    #list                        
    
    set-max-intset-entries 512   #set                ,                  
    
    activerehashing yes        #        

    まとめ:

  • 1、redisはいくつかの持続化メカニズムを提供する:
  • a). RDB永続化
    動作:redisのデータスナップショット(dump)からdump.rdbのファイルを時間間隔で
    利点:バックアップ・リカバリが簡単です.RDBサブプロセスによって持続的な作業が完了し、AOF起動よりも相対的に効率が高い
    劣勢:サーバ障害で数分以内にデータが失われる
    b). AOF永続化
    動作:AOFへの更新操作をログ形式で記録し、redisサービスの再起動時にログファイルを読み込んでデータベースを再構築し、起動後のデータ整合性を保証します.
    利点:AOFは2つの同期メカニズムを提供し、1つはfsync alwaysがデータの変化があるたびにログファイルに同期し、fsync everysecが毎秒1回ログファイルに同期し、データの完全性を最大限に保証することである.
    劣勢:ログファイルはRDBスナップショットファイルよりずっと大きい
    AOFログ書き換え機能:AOFログファイルが大きすぎて、redisは自動的にAOFログを書き換え、appendモードは絶えず更新記録を古いログファイルに書き込むと同時に、redisは後続の記録を追加するための新しいログファイルを作成する.
    c). AOFRDBを同時に適用
    データセキュリティの高いシーンでは、AOFRDBを同時に使用すると、パフォーマンスが低下します.
    d). 永続化なしredisサービス永続化機能を無効にします.
  • 2、AOFログファイルエラー後、修復方法:
  • redis-check-aof --fix appendonly.aof 
    #--fix         ,        
  • 3、redisを再起動せずにRDB持続化からAOF持続化に切り替える:
  • redis-cli> CONFIG SET appendonly yes      #  AOF
    
    redis-cli> CONFIG SET save ""         #  RDB

    雲栖コミュニティ-李振良の博文から転載