#按需配置
#加載個(gè)性化的配置
#include /path/local.conf
#按需修改
#綁定的ip地址,多個(gè)IP空格隔開
#如果是master bind 127.0.0.1 1.1.1.1 master.ip
#如果是slave bind 127.0.0.1 1.1.1.1
bind 127.0.0.1 1.1.1.1
#保護(hù)模式
protected-mode yes
#按需修改
#當(dāng)前實(shí)例監(jiān)聽的端口
port 6379
#tcp監(jiān)聽的最大容納數(shù)量,小于系統(tǒng)內(nèi)核
tcp-backlog 128
#指定 unix socket 的路徑。
# unixsocket /tmp/redis.sock
# unixsocketperm 755
#空閑的客戶端超時(shí)時(shí)間/s
#0表示不設(shè)超時(shí)時(shí)間
timeout 259200
#tcp連接被滋恚活查詢時(shí)間
tcp-keepalive 300
#daemon模式
daemonize yes
#是否打開記錄syslog功能
# syslog-enabled no
#syslog的標(biāo)識(shí)符
# syslog-ident redis
#日志的來源吱肌、設(shè)備
# syslog-facility local0
#
supervised auto
#按需修改
#pidfile文件的絕對(duì)路徑
pidfile /data/redis/redis-6379.pid
#日志級(jí)別撞牢,生產(chǎn)環(huán)境使用notice
loglevel notice
#按需修改
#日志記錄的文件絕對(duì)路徑
logfile "/data/logs/redis/redis-6379.log"
#多少個(gè)鍵空間遗遵,相當(dāng)于多少個(gè)數(shù)據(jù)庫
databases 16
#后臺(tái)持久化的配置
#900s內(nèi)至少有1個(gè)key變化躺同,保存
#300s內(nèi)至少10個(gè)key變化棍厂,保存
#60s內(nèi)至少有10000個(gè)key變化拷恨,保存
save 900 1
save 300 10
save 60 10000
#默認(rèn)情況下,如果 redis 最后一次的后臺(tái)保存失敗些膨,redis 將停止接受寫操作蟀俊,
#這樣以一種強(qiáng)硬的方式讓用戶知道數(shù)據(jù)不能正確的持久化到磁盤,
#否則就會(huì)沒人注意到災(zāi)難的發(fā)生订雾。
#如果后臺(tái)保存進(jìn)程重新啟動(dòng)工作了肢预,redis 也將自動(dòng)的允許寫操作。
#如果有自己安裝了靠譜的監(jiān)控洼哎,可設(shè)置為no
stop-writes-on-bgsave-error yes
#rdb持久化開啟壓縮
rdbcompression yes
#是否校驗(yàn)rdb文件
rdbchecksum yes
#按需修改
#持久化的文件名稱與目錄
dbfilename redis-6379.rdb
dir /data/redis/
#######################主從模式##########################
#按需修改
#當(dāng)作為slave時(shí)配置
#master的ip和port以及密碼
# slaveof
# masterauth
#當(dāng)一個(gè) slave 與 master 失去聯(lián)系烫映,或者復(fù)制正在進(jìn)行的時(shí)候沼本,
# slave 可能會(huì)有兩種表現(xiàn):
# 1) 如果為 yes ,slave 仍然會(huì)應(yīng)答客戶端請(qǐng)求锭沟,但返回的數(shù)據(jù)可能是過時(shí)抽兆,
# 或者數(shù)據(jù)可能是空的在第一次同步的時(shí)候
# 2) 如果為 no ,在你執(zhí)行除了 info he salveof 之外的其他命令時(shí)族淮,
# slave 都將返回一個(gè) "SYNC with master in progress" 的錯(cuò)誤
slave-serve-stale-data yes
#slave只讀模式
slave-read-only yes
#是否使用socket方式復(fù)制數(shù)據(jù)辫红。目前redis復(fù)制提供兩種方式,disk和socket祝辣。
#如果新的slave連上來或者重連的slave無法部分同步贴妻,就會(huì)執(zhí)行全量同步,
#master會(huì)生成rdb文件蝙斜。有2種方式:disk方式是master創(chuàng)建一個(gè)新的進(jìn)程把rdb文件保存到磁盤名惩,
#再把磁盤上的rdb文件傳遞給slave。socket是master創(chuàng)建一個(gè)新的進(jìn)程乍炉,
#直接把rdb文件以socket的方式發(fā)給slave绢片。disk方式的時(shí)候,
#當(dāng)一個(gè)rdb保存的過程中岛琼,多個(gè)slave都能共享這個(gè)rdb文件底循。
#socket的方式就的一個(gè)個(gè)slave順序復(fù)制。在磁盤速度緩慢槐瑞,網(wǎng)速快的情況下推薦用socket方式
repl-diskless-sync no
#diskless復(fù)制的延遲時(shí)間熙涤,防止設(shè)置為0。一旦復(fù)制開始困檩,
#節(jié)點(diǎn)不會(huì)再接收新slave的復(fù)制請(qǐng)求直到下一個(gè)rdb傳輸祠挫。所以最好等待一段時(shí)間,等更多的slave連上來
repl-diskless-sync-delay 5
#slave在一個(gè)預(yù)定義的時(shí)間發(fā)送ping命令到server
# repl-ping-slave-period 10
#主從復(fù)制過期時(shí)間
#這個(gè)值一定要比 repl-ping-slave-period 大
#repl-timeout 60
#是否禁止復(fù)制tcp鏈接的tcp nodelay參數(shù)悼沿,可傳遞yes或者no等舔。
#默認(rèn)是no,即使用tcp nodelay糟趾。如果master設(shè)置了yes來禁止tcp nodelay設(shè)置慌植,
#在把數(shù)據(jù)復(fù)制給slave的時(shí)候,會(huì)減少包的數(shù)量和更小的網(wǎng)絡(luò)帶寬义郑。
#但是這也可能帶來數(shù)據(jù)的延遲蝶柿。默認(rèn)我們推薦更小的延遲,但是在數(shù)據(jù)量傳輸很大的場景下非驮,建議選擇yes
repl-disable-tcp-nodelay no
#復(fù)制緩沖區(qū)大小交汤,這是一個(gè)環(huán)形復(fù)制緩沖區(qū),用來保存最新復(fù)制的命令劫笙。
#這樣在slave離線的時(shí)候芙扎,不需要完全復(fù)制master的數(shù)據(jù)星岗,如果可以執(zhí)行部分同步,
#只需要把緩沖區(qū)的部分?jǐn)?shù)據(jù)復(fù)制給slave纵顾,就能恢復(fù)正常復(fù)制狀態(tài)伍茄。
#緩沖區(qū)的大小越大栋盹,slave離線的時(shí)間可以更長施逾,
#復(fù)制緩沖區(qū)只有在有slave連接的時(shí)候才分配內(nèi)存。沒有slave的一段時(shí)間例获,內(nèi)存會(huì)被釋放出來汉额,默認(rèn)1m
# repl-backlog-size 1mb
#在某寫時(shí)間,master不再連接slaves榨汤,backlog將被釋放
#0表示不釋放
# repl-backlog-ttl 3600
#當(dāng)master不正常工作時(shí)蠕搜,推舉slave作為新的master
#值越小越優(yōu)先,但是0不可能被選中
slave-priority 100
#redis提供了可以讓master停止寫入的方式收壕,如果配置了min-slaves-to-write妓灌,
#健康的slave的個(gè)數(shù)小于N,mater就禁止寫入蜜宪。
#master最少得有多少個(gè)健康的slave存活才能執(zhí)行寫命令虫埂。
#這個(gè)配置雖然不能保證N個(gè)slave都一定能接收到master的寫操作,
#但是能避免沒有足夠健康的slave的時(shí)候圃验,master不能寫入來避免數(shù)據(jù)丟失掉伏。設(shè)置為0是關(guān)閉該功能
# min-slaves-to-write 3
#延遲小于min-slaves-max-lag秒的slave才認(rèn)為是健康的slave
# min-slaves-max-lag 10
# slave-announce-ip 5.5.5.5
# slave-announce-port 1234
#按需修改
#訪問redis的密碼,如果是slave澳窑,不設(shè)置密碼
requirepass root
#命令重新命名
# rename-command CONFIG ""
#最大可以開啟的客戶端連接數(shù)斧散,默認(rèn)10000
#一旦到達(dá)最大連接,將會(huì)斷開所有的連接
# maxclients 10000
#按需修改
#最大使用的內(nèi)存
#如果設(shè)置這個(gè)值摊聋,當(dāng)緩存容量達(dá)到時(shí)鸡捐,使用策略來移除key
#maxmemory 3000mb
#最大內(nèi)存策略
#volatile-lru :默認(rèn)策略,只對(duì)設(shè)置過期時(shí)間的key進(jìn)行LRU算法刪除
#allkeys-lru :刪除不經(jīng)常使用的key
#volatile-random :隨機(jī)刪除即將過期的key
#allkeys-random :隨機(jī)刪除一個(gè)key
#volatile-ttl :刪除即將過期的key
#noeviction :不過期麻裁,寫操作返回報(bào)錯(cuò)
# maxmemory-policy noeviction
#默認(rèn)隨機(jī)選擇5個(gè)key箍镜,從中淘汰最不常用的
# maxmemory-samples 5
################################ appendonly mode ######################
#是否在每次更新操作后進(jìn)行日志記錄,如果不開啟,
#可能會(huì)在斷電時(shí)導(dǎo)致一段時(shí)間內(nèi)的數(shù)據(jù)丟失。
#因?yàn)閞edis本身同步數(shù)據(jù)文件是按上面save條件來同步的悲立,
#所以有的數(shù)據(jù)會(huì)在一段時(shí)間內(nèi)只存在于內(nèi)存中鹿寨。默認(rèn)值為no
appendonly yes
#更新日志文件名
appendfilename "appendonly-6379.aof"
#更新日志條件,共有3個(gè)可選值薪夕。no表示等操作系統(tǒng)進(jìn)行數(shù)據(jù)緩存同步到磁盤脚草,
#always表示每次更新操作后手動(dòng)調(diào)用fsync()將數(shù)據(jù)寫到磁盤,
#everysec表示每秒同步一次(默認(rèn)值)
appendfsync everysec
#當(dāng)AOF日志文件即將增長到指定百分比時(shí)原献,redis通過調(diào)用BGREWRITEAOF是否自動(dòng)重寫AOF日志文件
no-appendfsync-on-rewrite no
#aof自動(dòng)重寫配置馏慨。當(dāng)目前aof文件大小超過上一次重寫的aof文件大小的百分之多少進(jìn)行重寫埂淮,
#即當(dāng)aof文件增長到一定大小的時(shí)候Redis能夠調(diào)用bgrewriteaof對(duì)日志文件進(jìn)行重寫。
#當(dāng)前AOF文件大小是上次日志重寫得到AOF文件大小的二倍(設(shè)置為100)時(shí)写隶,自動(dòng)啟動(dòng)新的日志重寫過程
auto-aof-rewrite-percentage 100
#設(shè)置允許重寫的最小aof文件大小倔撞,避免了達(dá)到約定百分比但尺寸仍然很小的情況還要重寫
auto-aof-rewrite-min-size 64mb
#aof文件可能在尾部是不完整的,當(dāng)redis啟動(dòng)的時(shí)候慕趴,aof文件的數(shù)據(jù)被載入內(nèi)存痪蝇。
#重啟可能發(fā)生在redis所在的主機(jī)操作系統(tǒng)宕機(jī)后,尤其在ext4文件系統(tǒng)沒有加上
#data=ordered選項(xiàng)(redis宕機(jī)或者異常終止不會(huì)造成尾部不完整現(xiàn)象冕房。)
#出現(xiàn)這種現(xiàn)象躏啰,可以選擇讓redis退出,或者導(dǎo)入盡可能多的數(shù)據(jù)耙册。
#如果選擇的是yes给僵,當(dāng)截?cái)嗟腶of文件被導(dǎo)入的時(shí)候,會(huì)自動(dòng)發(fā)布一個(gè)log給客戶端然后load详拙。
#如果是no帝际,用戶必須手動(dòng)redis-check-aof修復(fù)AOF文件才可以
aof-load-truncated yes
################################ LUA SCRIPTING ###############################
#如果達(dá)到最大時(shí)間限制(毫秒),redis會(huì)記個(gè)log饶辙,然后返回error蹲诀。
#當(dāng)一個(gè)腳本超過了最大時(shí)限。只有SCRIPT KILL和SHUTDOWN NOSAVE可以用畸悬。
#第一個(gè)可以殺沒有調(diào)write命令的東西侧甫。
#要是已經(jīng)調(diào)用了write,只能用第二個(gè)命令殺
lua-time-limit 5000
################################ REDIS CLUSTER ###############################
#激活集群
# cluster-enabled yes
#集群配置文件蹋宦,不需要手動(dòng)配置披粟,運(yùn)行時(shí)生成并更新
# cluster-config-file nodes-6379.conf
#節(jié)點(diǎn)互連超時(shí)的閥值。集群節(jié)點(diǎn)超時(shí)毫秒數(shù)
# cluster-node-timeout 15000
#在進(jìn)行故障轉(zhuǎn)移的時(shí)候冷冗,全部slave都會(huì)請(qǐng)求申請(qǐng)為master守屉,
#但是有些slave可能與master斷開連接一段時(shí)間了,導(dǎo)致數(shù)據(jù)過于陳舊蒿辙,
#這樣的slave不應(yīng)該被提升為master拇泛。該參數(shù)就是用來判斷slave節(jié)點(diǎn)與master斷線的時(shí)間是否過長。
#判斷方法是:
#比較slave斷開連接的時(shí)間和(node-timeout * slave-validity-factor) + repl-ping-slave-period
#如果節(jié)點(diǎn)超時(shí)時(shí)間為三十秒, 并且slave-validity-factor為10,
#假設(shè)默認(rèn)的repl-ping-slave-period是10秒思灌,即如果超過10秒slave將不會(huì)嘗試進(jìn)行故障轉(zhuǎn)移
# cluster-slave-validity-factor 10
#master的slave數(shù)量大于該值俺叭,slave才能遷移到其他孤立master上,
#如這個(gè)參數(shù)若被設(shè)為2泰偿,那么只有當(dāng)一個(gè)主節(jié)點(diǎn)擁有2 個(gè)可工作的從節(jié)點(diǎn)時(shí)熄守,它的一個(gè)從節(jié)點(diǎn)會(huì)嘗試遷移
# cluster-migration-barrier 1
#默認(rèn)情況下,集群全部的slot有節(jié)點(diǎn)負(fù)責(zé),集群狀態(tài)才為ok裕照,才能提供服務(wù)攒发。
#設(shè)置為no,可以在slot沒有全部分配的時(shí)候提供服務(wù)晋南。不建議打開該配置惠猿,
#這樣會(huì)造成分區(qū)的時(shí)候,小分區(qū)的master一直在接受寫請(qǐng)求负间,而造成很長時(shí)間數(shù)據(jù)不一致
# cluster-require-full-coverage yes
################################## SLOW LOG ###################################
#執(zhí)行時(shí)間超過則會(huì)記錄到日志偶妖,單位微秒
#負(fù)數(shù)時(shí)間會(huì)禁用慢查詢?nèi)罩荆?則會(huì)強(qiáng)制記錄所有命令唉擂,默認(rèn)設(shè)置為0.01s
slowlog-log-slower-than 10000
#慢查詢?nèi)罩鹃L度餐屎。當(dāng)一個(gè)新的命令被寫進(jìn)日志的時(shí)候檀葛,最老的那個(gè)記錄會(huì)被刪掉玩祟。
#這個(gè)長度沒有限制。只要有足夠的內(nèi)存就行屿聋。你可以通過 SLOWLOG RESET 來釋放內(nèi)存
slowlog-max-len 128
################################ LATENCY MONITOR ##############################
#延遲監(jiān)控功能是用來監(jiān)控redis中執(zhí)行比較緩慢的一些操作空扎,用LATENCY打印redis實(shí)例在跑命令時(shí)的耗時(shí)圖表。
#只記錄大于等于下邊設(shè)置的值的操作润讥。0的話转锈,就是關(guān)閉監(jiān)視。默認(rèn)延遲監(jiān)控功能是關(guān)閉的楚殿,
#如果你需要打開撮慨,也可以通過CONFIG SET命令動(dòng)態(tài)設(shè)置
latency-monitor-threshold 0
############################# EVENT NOTIFICATION ##############################
#按需修改
#鍵空間通知
notify-keyspace-events ""
############################### ADVANCED CONFIG ###############################
#數(shù)據(jù)量小于等于hash-max-ziplist-entries的用ziplist,大于hash-max-ziplist-entries用hash
hash-max-ziplist-entries 512
#value大小小于等于hash-max-ziplist-value的用ziplist脆粥,大于hash-max-ziplist-value用hash
hash-max-ziplist-value 64
#
list-max-ziplist-size -2
#
list-compress-depth 0
#數(shù)據(jù)量小于等于set-max-intset-entries用iniset砌溺,大于set-max-intset-entries用set
set-max-intset-entries 512
#數(shù)據(jù)量小于等于zset-max-ziplist-entries用ziplist,大于zset-max-ziplist-entries用zset
zset-max-ziplist-entries 128
#value大小小于等于zset-max-ziplist-value用ziplist变隔,大于zset-max-ziplist-value用zset
zset-max-ziplist-value 64
#value大小小于等于hll-sparse-max-bytes使用稀疏數(shù)據(jù)結(jié)構(gòu)(sparse)规伐,
#大于hll-sparse-max-bytes使用稠密的數(shù)據(jù)結(jié)構(gòu)(dense)。
#一個(gè)比16000大的value是幾乎沒用的匣缘,建議的value大概為3000猖闪。
#如果對(duì)CPU要求不高,對(duì)空間要求較高的肌厨,建議設(shè)置到10000左右
hll-sparse-max-bytes 3000
#是否激活rehashing,默認(rèn)開啟
#Redis將在每100毫秒時(shí)使用1毫秒的CPU時(shí)間來對(duì)redis的hash表進(jìn)行重新hash培慌,
#可以降低內(nèi)存的使用。當(dāng)你的使用場景中柑爸,有非常嚴(yán)格的實(shí)時(shí)性需要吵护,
#不能夠接受Redis時(shí)不時(shí)的對(duì)請(qǐng)求有2毫秒的延遲的話,把這項(xiàng)配置為no。
#如果沒有這么嚴(yán)格的實(shí)時(shí)性要求何址,可以設(shè)置為yes里逆,以便能夠盡可能快的釋放內(nèi)存
activerehashing yes
#對(duì)客戶端輸出緩沖進(jìn)行限制可以強(qiáng)迫那些不從服務(wù)器讀取數(shù)據(jù)的客戶端斷開連接,用來強(qiáng)制關(guān)閉傳輸緩慢的客戶端
#對(duì)于normal client用爪,第一個(gè)0表示取消hard limit原押,第二個(gè)0和第三個(gè)0表示取消soft limit,
#normal client默認(rèn)取消限制偎血,因?yàn)槿绻麤]有尋問诸衔,他們是不會(huì)接收數(shù)據(jù)的
client-output-buffer-limit normal 0 0 0
#對(duì)于slave client和MONITER client,如果client-output-buffer一旦超過256mb颇玷,
#又或者超過64mb持續(xù)60秒笨农,那么服務(wù)器就會(huì)立即斷開客戶端連接
client-output-buffer-limit slave 256mb 64mb 60
#對(duì)于pubsub client,如果client-output-buffer一旦超過32mb帖渠,
#又或者超過8mb持續(xù)60秒谒亦,那么服務(wù)器就會(huì)立即斷開客戶端連接
client-output-buffer-limit pubsub 32mb 8mb 60
#redis執(zhí)行任務(wù)的頻率為1s除以hz
hz 10
#在aof重寫的時(shí)候,如果打開了aof-rewrite-incremental-fsync開關(guān)空郊,系統(tǒng)會(huì)每32MB執(zhí)行一次fsync份招。
#這對(duì)于把文件寫入磁盤是有幫助的,可以避免過大的延遲峰值
aof-rewrite-incremental-fsync yes
排版并不是很好狞甚,版本對(duì)應(yīng)為3.2.5锁摔。
文中部分沒有翻譯,后續(xù)補(bǔ)上哼审。
翻譯有出入的地方谐腰,請(qǐng)指出,感激不盡涩盾。