Redis学習ノート---Redis 5.0.5プロファイルの詳細


4、解析プロファイル(redis 5.0.5)
プロファイルは${PATH}/redis.conf
4.1、記憶
#                   ,       ,        1k 5gb 4m  :
#1k => 1000 bytes
#1kb => 1024 bytes
#1m => 1000000 bytes
#1mb => 10241024 bytes
#1g => 1000000000 bytes
#1gb => 10241024*1024 bytes

4.2、外部プロファイルの導入(INCLUDES)
#         
# include /path/to/local.conf
# include /path/to/other.conf

4.3、モジュールロード(MODULES)
#       
#loadmodule /path/to/my_module.so
#loadmodule /path/to/other_module.so

4.4、ネットワーク(NETWORK)
4.4.1.redisが実行するホストIPを受け入れる
#  redis       IP        ,                
bind 127.0.0.1

4.4.2、保護モードをオンにするかどうか
#        。      bind   ,redis        ,      。
protected-mode yes

4.4.3、ポート
#    ,                      
port 6379

4.4.4、TCP接続で完了したキュー
#TCP        (        )   
#backlog         ,backlog    =          +          。
#             backlog            。
tcp-backlog 511

4.4.5、ローカルの傍受をサポートする
#  unix socket  redis        。
#unixsocket /tmp/redis.sock

4.4.6、unixsocketファイルを使用する権限
#  unix socket       
#unixsocketperm 700

4.4.7、接続タイムアウト
#         timeout     , 0   (0    ,    )
timeout 0

4.4.8、tcp keepaliveパラメータ
#tcp keepalive    
#    ,     0,     keepalive  ,     60
tcp-keepalive 300

4.5、基本構成(GENERAL)
4.5.1、バックグラウンド起動
#      
daemonize no

4.5.2.upstartとsystemdによるRedisデーモンの管理
#    upstart systemd  Redis    
#  :
#supervised no -       
#supervised upstart -    Redis  SIGSTOP       
#supervised systemd - signal systemd READY = 1  $ NOTIFY_SOCKET
#supervised auto -   upstart systemd     UPSTART_JOB NOTIFY_SOCKET    
supervised no

4.5.3、PID保存ファイルパス
#  PID    
pidfile /var/run/redis_6379.pid

4.5.4、ログレベル
#    
#  :
#	debug
#	verbose
#	notice
#	warning
loglevel notice

4.5.5、ログファイル
#    
logfile “”

4.5.6、記録syslog機能
#      syslog  
#syslog-enabled no

4.5.7、syslog識別子
#syslog   
#syslog-ident redis

4.5.8、ログのソース
#     
#syslog-facility local0

4.5.9、データベースの数
#      ,         DB 0
#    ”SELECT “      db
#        DB 0
databases 16

4.5.10、logoをずっと表示するか
#      logo
always-show-logo yes

4.6、データ持続化RDB(SNAPSHOTTING)
4.6.1、データをディスクに保存する
#       :
#     
#       ,      :
#900 (15  ) ,             
#300 (5  ) ,     10     
#60  ,    10000       

#  :          “save”      save。
#            save,                 save  ,       :
#save ""

save 900 1
save 300 10
save 60 10000

4.6.2、持続化エラーが発生して仕事を続けるかどうか
#        ,            
stop-writes-on-bgsave-error yes

4.6.3、rdbファイルを検査するかどうか
#    rdb  
rdbcompression yes

4.6.4、圧縮rdbファイルの使用
#    rdb  ,rdb      LZF    ,
rdbchecksum yes

4.6.5、rdbファイル名
#rdb    
dbfilename dump.rdb

4.6.6、rdb上記の「dbfilename構成命令のファイル名を使用してこのディレクトリに保存する
#rdb     “dbfilename               
dir ./

4.7、主従複製
4.7.1、主ノードの指定
# -    。  replicaof Redis       Redis   。
#  Redis  ,          。
#
#   +------------------+      +---------------+
#   |                 | ---> |              |
#   | (    )        |      |  (    )     |
#   +------------------+      +---------------+
#
# 1) Redis      ,         master to
#                ,              。
# 2) Redis       master               
#      。                  (     )      ,        。
# 3)       ,       。                          。
#
# replicaof  

4.7.2、マスターのパスワード
#master   
#masterauth

4.7.3、slaveの行為
#   slave   master   ,         ,slave        :
#   replica-serve-stale-data     “yes” (   ),slave          ,       ,             。
#   replica-serve-stale-data     “no”,slave   "   master  (SYNC with master in progress)"       ,   INFO   SLAVEOF   。
replica-serve-stale-data yes

4.7.4、構成は読取り専用かどうか
#        ,           ,    :slave-read-only yes
replica-read-only yes

4.7.5、同期ポリシー
#    :    socket,      
repl-diskless-sync no

4.7.6、同期遅延時間
#           ,          ,   master       socket  RDB   slave。
#    5 ,   0         。
repl-diskless-sync-delay 5

4.7.7、slaveは指定した時間間隔に従ってmasterにping要求を送信する
#slave          master  ping  。  10 。
#repl-ping-replica-period 10

4.7.8、同期のタイムアウト時間
#       
#slave  master SYNC         ,    
# slave  ,master  ,    、ping 
# master  ,slave  , master  REPLCONF ACK pings#          repl-ping-slave-period,                    
#repl-timeout 60

4.7.9、slaveソケットがSYNCを送信した後にTCPを無効にするかどうかNODELAY
#   slave     SYNC     TCP_NODELAY
#    yes,Redis      TCP      slaves    。          slave    ,Linux          40  。
#    no,     salve                。
#            ,                 ,     “yes”。
repl-disable-tcp-nodelay no

4.7.10、データバックアップのbacklogサイズを設定する
#       backlog  
#repl-backlog-size 1mb

4.7.11、最後のslaveが切断されてから数秒計時を開始すると、backlogバッファが解放されます.
#     slave          ,backlog      。
#repl-backlog-ttl 3600

4.7.12、優先度
#   
replica-priority 100

4.7.13、書き込みの受信を停止する
#  master  N       M     slave,          。
#N slave   “oneline”  。
#        ,           ,       slave    ping(      )    。
#      N slave       ,            。
#      3       10  slave      :
#min-replicas-to-write 3
#min-replicas-max-lag 10

4.8、安全(SECURITY)
4.8.1、パスワード
#  
#requirepass foobared

4.8.2、コマンドの名前変更
#     
#           
#rename-command CONFIG “”

4.9、制限
4.9.1、同時接続数
#              
#maxclients 10000

4.9.2、メモリ制限
#    
#maxmemory 

#             ,Redis      key
#volatile-lru ->   LRU           key
#allkeys-lru ->   LRU      key
#volatile-random ->             key
#allkeys-random ->       key
#volatile-ttl ->        key(minor TTL)
#noeviction ->      key,        
#  :       ,  Redis           key             。
#         :set setnx setex append incr decr rpush lpush rpushx lpushx linsert lset rpoplpush sadd sinter sinterstore sunion sunionstore sdiff sdiffstore zadd zincrby zunionstore zinterstore hset hsetnx hmset hincrby incrby decrby getset mset msetnx exec sort
#maxmemory-policy noeviction

4.9.3、LRU及び最小TTLアルゴリズムのサンプル数
#LRU   TTL       
#maxmemory-samples 5

4.10、怠惰削除
4.10.1、メモリフル排出
#     
lazyfree-lazy-eviction no

4.10.2、期限切れkey削除
#  key  
lazyfree-lazy-expire no

4.10.3、内部削除
#    ,  rename oldkey newkey ,  newkey      newkey
lazyfree-lazy-server-del no

4.10.4、RDBファイルを受信した後、データのクリアオプション
#   RDB         
replica-lazy-flush no

4.11、持続化方式AOF
4.11.1、起動するたびにRedisはまずこのファイルのデータをメモリに読み込み、まずRDBファイルを無視する
#     Redis                ,   RDB  
appendonly no

4.11.2、AOFファイル名
#AOF    
appendfilename “appendonly.aof”

4.11.3、fsync()システム呼び出し
#fsync()                   ,                。
#                   ;            。
#Redis         :
#no:     ,               。   。
#always:           aof  。 ,     。
#everysec:     。    。
#    “everysec”                         。
appendfsync everysec

4.11.4、AOFの同期ポリシーが「always」または「everysec」に設定されている場合
#  AOF         “always”    “everysec”,         (       AOF   )       I/O  。  Linux      Redis   fsync()         。
#  ,              ,        fsync()         write(2)  。
#        ,         。     BGSAVE   BGREWRITEAOF      fsync()。
#                  ,  Redis   "    "   。
#      ,            30       。(  Linux  )
#        "yes"       ,   "no",               。
no-appendfsync-on-rewrite no

4.11.5、AOFファイルの自動書き換え
#    AOF  。  AOF            ,Redis     BGREWRITEAOF     AOF    。
#    :Redis       AOF     (           ,        AOF  )
#              。            ,        。
#                ,                          。
#      0   AOF      。
auto-aof-rewrite-percentage 100
#               
auto-aof-rewrite-min-size 64mb

4.11.6、AOFメモリへのロード
#     yes,           AOF   redis        ,redis          
#     no,erdis      。     "redis-check-aof"      。
aof-load-truncated yes

4.11.7、ロード時の設定
#   Redis   AOF   “REDIS”     ,
#        RDB  ,      AOF
aof-use-rdb-preamble yes

4.12、Luaスクリプト構成
#Lua           
lua-time-limit 5000

4.13、クラスター
4.13.1、redisクラスタを開く
#  redis  
#cluster-enabled yes

4.13.2.redisが自動的に生成するクラスタプロファイル名を構成する
#  redis            。           redis           。
#cluster-config-file nodes-6379.conf

4.13.3、クラスタノードタイムアウトミリ秒数
#         
#cluster-node-timeout 15000

4.13.4、データが古い場合
#      ,       master slave         master。  slave master      :(node-timeout * slave-validity-factor) + repl-ping-slave-period       master。
# node-timeout 30 ,slave-validity-factor 10,   default repl-ping-slave-period 10 ,      310 slave     master。
#   slave-validity-factor            slave  master,                 master。
#             ,     0, slave   master          master
#cluster-replica-validity-factor 10

4.13.5、マスター数の設定
#     master              slave   ,slave       master。   1(       3   ,1 master+2 slaves,master  ,    1 slave      1 slave    )
#        0,          1
#cluster-migration-barrier 1

4.13.6、クエリーデータの停止
#       redis          1 hash slot   ,         。
#    slot         。
#                     ,   no。
#cluster-require-full-coverage yes

4.13.7、replicasがマスターの故障中にmasterの故障転送を試みることを阻止する
#     yes ,   replicas    master            
#  ,master            ,         。
#cluster-replica-no-failover no

4.14、Dockerクラスタ構成
#     ,Redis        IP          PORT,            。
#  Docker   ,       host    ,      IP PORT     ,                   IP PORT    。
#        ,Redis          IP PORT          。   IP PORT   Docker         IP PORT 。
#cluster-announce-ip
#cluster-announce-port
#      
#cluster-announce-bus-port

4.15、遅い照会ログ
#             
#1000000  1 ,   0       
slowlog-log-slower-than 10000

#    ,   SLOWLOG RESET    
slowlog-max-len 128

4.16、遅延監視システム
#               (  )   , 0    
latency-monitor-threshold 0

4.17、事件通知
#Redis    Pub/Sub              ,    
notify-keyspace-events “”

4.18、内部データ構造
# hash     entry ,     entry              ,         
#       。              
hash-max-ziplist-entries 512
hash-max-ziplist-value 64

#       ,              quicklist    ziplist  。  ,       
# 5   ,    quicklist   ziplist    5    。
#       ,              quicklist    ziplist  。  ,    -1 -5
#    ,       :
#-5:   quicklist    ziplist      64 Kb。( :1kb => 1024 bytes)
#-4:   quicklist    ziplist      32 Kb。
#-3:   quicklist    ziplist      16 Kb。
#-2:   quicklist    ziplist      8 Kb。(-2 Redis      )
#-1:   quicklist    ziplist      4 Kb。
list-max-ziplist-size -2

#        quicklist           。
# :         quicklist         ,    ziplist        。
#   ,  quicklist    ziplist,     ,        。
#  list-compress-depth       :
#0:      ,      。  Redis    。
#1:   quicklist    1      ,       。
#2:   quicklist    2      ,       。
#3:   quicklist    3      ,       。
#    …
#  0     ,     quicklist               ,              。
list-compress-depth 0

#set          : set       64               。
#             set                。
set-max-intset-entries 512

# hash list  ,                        。
#                        
zset-max-ziplist-entries 128
zset-max-ziplist-value 64

#HyperLogLog           。     
#16     。 HyperLogLog        
#    ,          。
#   16000      ,     
#             。
#    3000  ,         ,        
hll-sparse-max-bytes 3000

#Streams       /  。                     。     
#            ,                    
#       。           0,    ,          
#      max-bytes   0, max-entries       
stream-node-max-bytes 4096
stream-node-max-entries 100

#      , 100 CPU     1      Redis     (       )
activerehashing yes

#            ,                                 
client-output-buffer-limit normal 0 0 0
client-output-buffer-limit slave 256mb 64mb 60
client-output-buffer-limit pubsub 32mb 8mb 60

#             。             ,
#                                     
#  ,        ,         ,               。
#client-query-buffer-limit 1gb

# Redis   ,    ,        strings,     512 MB。
#  ,   z     
#proto-max-bulk-len 512mb

#     ,“hz”     10。      Redis        CPU ,       key
#      Redis      ,            
hz 10

#    hz
dynamic-hz yes

#        AOF   ,         ,      32M      
aof-rewrite-incremental-fsync yes

# redis  RDB   ,         ,   32 MB  ,    fsync-ed。
#    ,                       。
rdb-save-incremental-fsync yes

4.19、破片の整理
#        
#activedefrag yes

#                
#active-defrag-ignore-bytes 100mb

#              
#active-defrag-threshold-lower 10

#               
#active-defrag-threshold-upper 100

# CPU               
#active-defrag-cycle-min 5

#           
#active-defrag-cycle-max 75

#            set / hash / zset / list   
#active-defrag-max-scan-fields 1000