redis.conf配置事例
要掌握redis的用法,配置文件的重要參數(shù)必須掌握,下面是筆者對(duì)各個(gè)參數(shù)的學(xué)習(xí)筆記,同時(shí)會(huì)針對(duì)特殊參數(shù)的使用場(chǎng)景做簡(jiǎn)短說(shuō)明。
- include /path/to/other.conf
解釋?zhuān)篿nclude和c里面的include概念類(lèi)似,可以把redis的的參數(shù)分散到其他文件,當(dāng)運(yùn)行多個(gè)redis實(shí)例時(shí),通過(guò)include一個(gè)common的配置文件讓所有redis-server共享,簡(jiǎn)化redis.conf的內(nèi)容。
- daemonize no
解釋?zhuān)?/p>
毋容置疑,這個(gè)參數(shù)指定redis是否以后臺(tái)進(jìn)程方式啟動(dòng),默認(rèn)不是,生產(chǎn)環(huán)境可以改成yes,另外,Redis是單線程的。
- pidfile /var/run/redis.pid
解釋?zhuān)?/p>
當(dāng)daemonize參數(shù)為yes時(shí),后臺(tái)進(jìn)程方式啟動(dòng)后,redis會(huì)創(chuàng)建進(jìn)程文件,這個(gè)參數(shù)是指定此文件的路徑。
- port 6379
解釋?zhuān)簉edistcp 監(jiān)聽(tīng)端口,客戶端通過(guò)此端口與redis服務(wù)器交互。非集群模式下,redis只有這個(gè)監(jiān)聽(tīng)端口
- tcp-backlog 511
解釋?zhuān)嚎蛻舳诉B接隊(duì)列值,這個(gè)值是socket里面listen函數(shù)的參數(shù)。如果服務(wù)器caps很高,需要把這個(gè)參數(shù)改大些。
- bind 127.0.0.1
解釋?zhuān)罕O(jiān)聽(tīng)地址,默認(rèn)是監(jiān)聽(tīng)所有網(wǎng)卡,也可以指定監(jiān)聽(tīng)一個(gè)或多個(gè)。多個(gè)的格式:
bind 192.168.1.1 192.168.1.2
- loglevel notice
解釋?zhuān)?/p>
指定log級(jí)別,默認(rèn)是notice,包括debug,verbose ,notice, , warning.
生產(chǎn)環(huán)境建議用notice,測(cè)試階段可以用debug或者verbose,debug的log最多。
- Logfile
解釋?zhuān)?/p>
log 文件指定,默認(rèn)是空,打印到控制臺(tái),可指定路徑,如/var/log/redis.log
- save 900 1
解釋?zhuān)?/p>
這個(gè)參數(shù)是redis持久化的支持,基于snapshot機(jī)制,定期執(zhí)行持久化存儲(chǔ),生成rdb文件,save 命令打開(kāi)此配置,***個(gè)參數(shù)指定多久(單位是秒)執(zhí)行一次,第二個(gè)是在***個(gè)參數(shù)指定的時(shí)間內(nèi)執(zhí)行多少次寫(xiě)操作才執(zhí)行持久化操作。
- dbfilename dump.rdb
save生成的數(shù)據(jù)庫(kù)文件名字
- dir ./
數(shù)據(jù)庫(kù)的目錄路徑,默認(rèn)和server一個(gè)目錄
- slaveof <masterip> <masterport>
解釋?zhuān)?/p>
Redis 主從復(fù)制功能,通過(guò)這個(gè)參數(shù)可以讓一個(gè)redis啟動(dòng)時(shí)作為某個(gè)master的slave,
Slaveof ***個(gè)參數(shù)是master的ip,第二個(gè)參數(shù)是master的port.
也可以通過(guò)redis-cli控制臺(tái)執(zhí)行slaveof命令動(dòng)態(tài)把某個(gè)redis作為另一個(gè)master的slave。
- requirepass passwd
解釋?zhuān)?/p>
此redis的密碼,如果開(kāi)啟,客戶端連接時(shí)需要設(shè)置密碼,另外一個(gè)作用是redis作為slave時(shí),如果master開(kāi)啟了此參數(shù),slave需要設(shè)置masterauth參數(shù)的值為此參數(shù)(requirepass)的值,
- masterauth <master-password>
解釋?zhuān)?/p>
這個(gè)參數(shù)只有在當(dāng)前redis作為slave時(shí)管用,用于slave和master之間的鑒權(quán),如果master開(kāi)啟了鑒權(quán)功能,則masterauth的意思是此slave和master通信時(shí)用這個(gè)密碼。
另外,這個(gè)參數(shù)只有在master的redis.conf文件中開(kāi)啟了reqireuth參數(shù)時(shí)才被使用。
- maxclients 10000
解釋?zhuān)?**并發(fā)客戶端數(shù)。同時(shí)存在10000個(gè)tcp連接
- maxmemory
解釋?zhuān)簉edis申請(qǐng)的***內(nèi)存,字節(jié)為單位,默認(rèn)不限制。
- appendonly yes
解釋?zhuān)?/p>
Redis持久化第二種方式,AOF,默認(rèn)開(kāi)啟,默認(rèn)每秒執(zhí)行一次持久化保存,也可以設(shè)置成實(shí)時(shí)保持,這個(gè)比save更安全。
- appendfilename "appendonly.aof"
解釋?zhuān)篈OF方式下,保持的數(shù)據(jù)文件名字
- appendfsync no
解釋?zhuān)簣?zhí)行aof的時(shí)機(jī),可以為每秒(everysec),實(shí)時(shí)(always),不手動(dòng),交給操作系統(tǒng)執(zhí)行flush(no)
- cluster-enabled yes
解釋?zhuān)洪_(kāi)啟當(dāng)前redis的集群模式,3.0版本才出現(xiàn),默認(rèn)關(guān)閉。
- cluster-config-file nodes-6379.conf
解釋?zhuān)?/p>
集群模式下,每個(gè)redis節(jié)點(diǎn)生成一個(gè)自己的集群配置文件,這個(gè)文件不需要人工修改,由redis自己維護(hù)。
- cluster-node-timeout 15000
解釋?zhuān)?/p>
集群模式時(shí),當(dāng)前節(jié)點(diǎn)在與其他節(jié)點(diǎn)保活探測(cè)時(shí),多久沒(méi)有響應(yīng)時(shí)認(rèn)為其他節(jié)點(diǎn)處于fail狀態(tài),上面是15秒。
【本文為51CTO專(zhuān)欄作者“王森豐”的原創(chuàng)稿件,轉(zhuǎn)載請(qǐng)注明出處】