1.include命令
# include .\path\to\local.conf 可以包含其他的配置文件
# include c:\path\to\other.conf
2.網(wǎng)絡(luò)配置
bind 127.0.0.1 #配置的服務(wù)器的ip
port 6379 #默認(rèn)的端口號是6379
3.通用的信息 日志等
daemonize yes #默認(rèn)的開啟守護(hù)進(jìn)程
pidfile /var/run/redis_6379.pid #如果守護(hù)進(jìn)程開啟那么我們需要指定一個pid
# Specify the server verbosity level.
# This can be one of:
# debug (a lot of information, useful for development/testing)
# verbose (many rarely useful info, but not a mess like the debug level)
# notice (moderately verbose, what you want in production probably) 生產(chǎn)環(huán)境使用
# warning (only very important / critical messages are logged)
loglevel notice #有四種級別 默認(rèn)是notice
logfile "" #日志存放的地址
databases 16 #redis的數(shù)據(jù)庫一共有16個
4.SNAPSHOTTING 快照
持久化,在規(guī)定的時間內(nèi),執(zhí)行了多少次操作,那么則會持久化操作到文件.rdb,.aof中
redis是內(nèi)存數(shù)據(jù)庫,如果沒有持久化,那么就會斷電即失
save 900 1 #如果在900秒內(nèi)至少有一個key修改,那么就會進(jìn)行持久化操作
save 300 10 #如果在300秒內(nèi)至少有一個key修改,那么就會進(jìn)行持久化操作
save 60 10000 #如果在60秒內(nèi)至少有一個key修改,那么就會進(jìn)行持久化操作
stop-writes-on-bgsave-error yes #如果持久化操作失敗,那么還是否要繼續(xù)工作
rdbcompression yes #是否需要壓縮rdb文件,需要消耗一些cpu資源
rdbchecksum yes #保存rdb文件的時候,進(jìn)行錯誤的檢驗(yàn)
dir ./ #rdb文件保存的路徑
5.REPLICATION 主從復(fù)制
# slaveof <masterip> <masterport> 配置主機(jī)的ip和端口
# masterauth <master-password> 配置主機(jī)的密碼
#slave-serve-stale-data yes 主從復(fù)制中,從服務(wù)器可以響應(yīng)客戶端請求 一般是讀操作
#slave-read-only yes 叢機(jī)只能是讀操作,默認(rèn)是開啟的
#repl-diskless-sync no #主從同步支持兩種策略,即disk和socket方式(socket方式尚不完 善,還處于實(shí)驗(yàn)階段) 新的slave端和重連的salve端不允許去繼續(xù)同步進(jìn)程,這被稱之為“完全同步”。一個RDB文件從master端傳到slave端,分為兩種情況:1、支持disk:master端將RDB file寫到disk,稍后再傳送到slave端;2、無磁盤diskless:master端直接將RDB file傳到slave socket,不需要與disk進(jìn)行交互。無磁盤diskless方式適合磁盤讀寫速度慢但網(wǎng)絡(luò)帶寬非常高的環(huán)境。
#repl-diskless-sync no #默認(rèn)不使用diskless同步方式
#repl-diskless-sync-delay 5 #無磁盤diskless方式在進(jìn)行數(shù)據(jù)傳遞之前會有一個時間的延遲,以便slave端能夠進(jìn)行到待傳送的目標(biāo)隊(duì)列中,這個時間默認(rèn)是5秒
#repl-disable-tcp-nodelay no #是否啟用TCP_NODELAY,如果啟用則會使用少量的TCP包和帶寬去進(jìn)行數(shù)據(jù)傳輸?shù)絪lave端,當(dāng)然速度會比較慢;如果不啟用則傳輸速度比較快,但是會占用比較多的帶寬。
#slave-priority 100 #slave端的優(yōu)先級設(shè)置,值是一個整數(shù),數(shù)字越小表示優(yōu)先級越高。當(dāng)master故障時將會按照優(yōu)先級來選擇slave端進(jìn)行恢復(fù),如果值設(shè)置為0,則表示該slave永遠(yuǎn)不會被選擇。
6.security 安全
127.0.0.1:6379> oing
(error) ERR unknown command 'oing'
127.0.0.1:6379> ping #在沒有密碼的情況下我們可以看到是可以ping通的
PONG
127.0.0.1:6379> config get requirepass #我們可以通過這個命令去看是否配置了密碼
1) "requirepass"
2) ""
127.0.0.1:6379> config set requirepass "123456" #我們可以設(shè)置密碼
OK
127.0.0.1:6379> ping
(error) NOAUTH Authentication required. #可以看到此刻ping不通,需要進(jìn)行密碼的驗(yàn)證
127.0.0.1:6379> auth 123456
OK #驗(yàn)證通過
127.0.0.1:6379> ping #可以看到再次ping通
PONG
127.0.0.1:6379>
7.limit 限制
maxclients 10000 #設(shè)置能連上redis的最大客戶端數(shù)量,默認(rèn)是1萬個,這個是默認(rèn)的配置,一般不做修改
maxmemory <bytes> #redis的最大內(nèi)存設(shè)置,默認(rèn)是字節(jié)
maxmemory-policy noeviction #內(nèi)存達(dá)到上限之后的處理策略
# volatile-lru -> remove the key with an expire set using an LRU algorithm 只對設(shè)置了過期時間的key進(jìn)行刪除
# allkeys-lru -> remove any key according to the LRU algorithm 刪除lru算法的key
# volatile-random -> remove a random key with an expire set 隨機(jī)刪除即將過期的key
# allkeys-random -> remove a random key, any key 隨機(jī)刪除
# volatile-ttl -> remove the key with the nearest expire time (minor TTL) 刪除即將過期的key
# noeviction -> don't expire at all, just return an error on write operations 永不過期,返回錯誤
8.aof 配置 APPEND ONLY MODE
appendonly no 默認(rèn)是不開啟配置的 默認(rèn)是使用rdb模式的
appendfilename "appendonly.aof" # 文件名稱
# appendfsync always #每次修改都會sync,消耗性能
appendfsync everysec #每秒執(zhí)行一次sync,可能會丟失者一秒的數(shù)據(jù)
# appendfsync no #不執(zhí)行sync,這個時候操作系統(tǒng)自己同步數(shù)據(jù),速度最快