redis3.0配置調優
阿新 • • 發佈:2019-01-31
導讀:
a) 此文針對使用過redis或者正要使用redis的讀者
b) redis單例項部署忽略主從複製和叢集部分
b) 需要注意sentinel的配置不適用此版本
################################ GENERAL(常規) #####################################
a) daemonize no建議啟用守護模式模式:daemonize yes
b) pidfile /var/run/redis.pid
根據port指定守護程序的pid檔案路徑:pidfile /var/run/redis-6379.pid
c) port 6379
指定埠:port 6379
d) bind
預設啟動ipv4和ipv6,如需禁用ipv6:bind 0.0.0.0
e) timeout 0
N秒後關閉空閒的client連線,建議設定為120秒,不維護不活躍連線:timeout 120
f) tcp-keepalive 0
心跳檢測時間,建議60秒:tcp-keepalive 60
g) logfile ""
根據port指定全路徑檔名:logfile "/xxx/6379.log"
################################ SNAPSHOTTING(rdb) ################################
a) save 900 1
save 300 10
save 60 10000
BGSAVE會佔用額外記憶體,單機多例項的環境建議禁用自動BGSAVE,減少記憶體無序不可控:save ""
b) dbfilename dump.rdb
根據port指定rdb檔名:dbfilename dump-6379.rdb
c) dir ./
指定工作目錄,儲存rdb檔案和aof檔案:dir /xxx/xxx/
################################# REPLICATION(主從複製) #################################
a) # slaveof <masterip> <masterport>
預設禁用主從模式
b) masterauth <master-password>
如果master設定了密碼,slave也需要配置
c) repl-timeout 60
複製超時,預設60s,如果記憶體分配比較多(比如單例項4GB),建議調到3分鐘
d) repl-backlog-size 1mb建議調整至128mb,或者根據實際寫入壓力調整,減少slave掉線全量複製的情況發生。
################################## SECURITY(安全) ###################################
a) # requirepass foobared
密碼,預設不啟動,同時需要注意密碼的強壯性
b) rename-command
建議把一些重要的命令rename,防止誤操作
################################### LIMITS(限制) ####################################
a) maxclients 10000
按需調整,預設最大客戶端1w
b) maxmemory
最大記憶體數,預設無限制,單例項不建議超過4G
c) maxmemory-policy noeviction
建議配置記憶體回收策略,否則記憶體寫滿了將導致寫入失敗:maxmemory-policy volatile-lru
############################## APPEND ONLY MODE(aof) ###############################
a) appendonly no
建議開啟aof,資料安全性更高:appendonly yes
b) appendfsync everysec
預設選擇everysec同步策略
c) no-appendfsync-on-rewrite no
建議設定為yes,主程序執行BGSAVE或者BGREWRITEAOF時,會暫停呼叫fsync(),
減少磁碟I/O壓力:no-appendfsync-on-rewrite yes
################################ REDIS CLUSTER(叢集) ###############################
a) # cluster-enabled yes
預設不啟動叢集功能,如需成為叢集的節點:cluster-enabled yes
注意主從節點都需要開啟
b) # cluster-config-file nodes-6379.conf
根據port指定檔名,不能出現衝突:cluster-config-file nodes-6379.conf
c) # cluster-node-timeout 15000
節點超時時間預設15秒,根據線上環境進行調整,不建議比15秒小
d) cluster-require-full-coverage yes
建議設定為no,部分node掛掉依然支援讀寫服務:cluster-require-full-coverage no
End