摘要:配置主庫的數(shù)據(jù)庫密碼。具體參見手冊中的章節(jié)如果該項設置為默認就是當一定比例的鍵空間沒有被覆蓋到就是某一部分的哈希槽沒了,有可能是暫時掛了集群就停止處理任何查詢操作。比如,如果需要開啟針對列表的事件通知,則該選項需要配置為
1.配置文件用法
啟動redis的時候指定配置?件路徑:
./redis-server /path/to/redis.conf
不指定配置?件的時候使?內置配置?件啟動,此?法僅適?于開發(fā)和測試。
2.include配置配置?于引?其他配置?件,配置集群的時候?于引?公共配置?法如下:
include /path/to/other.conf3.bind
此配置?于綁定服務器?絡接?,默認情況下綁定所有可?的?絡端?。 可以通
過: bind ip1 ip2... 綁定多個端?。 ?如服務器局域?ip地址為:192.168.20.127。
以下配置可以實現(xiàn)局域?和本地訪問:
bind 192.168.20.127 127.0.0.1
注:
bind 192.168.1.100 10.0.0.1 bind 127.0.0.1
上?配置只綁定了127.0.0.1這個ip。
bind 0.0.0.0
為綁定所有可??絡端?。
4.protected-mode保護模式配置:
protectedmode yes
當保護模式開啟的時候,且沒有配置bind和密碼,只有ipv4和ipv6的回路ip127.0.0.1
and ::1可以訪問
redis監(jiān)聽的端?配置:
port 6379 port 0 不監(jiān)聽端?6.timeout
設置客戶端連接超時時間,0的時候為關閉此功能。當客戶端在此時間段內沒有發(fā)送
指令,關閉連接。
timeout 07.daemonize
daemonize yes
設置redis后臺運?當后臺運?的時候會?成?個進程?件:
/var/run/redispid8.pidfile
配置后臺運?時?成的pid?件路徑:
pidfile /var/run/redis6379.pid9 loglevel
指定?志打印等級:
debug(開發(fā)測試)、verbose、notice(線上)、warning
loglevel notice10.logfile
指定?志?件路徑和名稱如:
logfile "/Users/yuanweipeng/Desktop/redislog"
設置系統(tǒng)?志:
syslog-enabled no syslog-ident redis syslog-facility local0 設置系統(tǒng)?志設備名稱11.databases
設置數(shù)據(jù)庫個數(shù):
databases 16
默認的數(shù)據(jù)庫是db0,可以通過可以通過select dbid為每一個連接選擇不同的數(shù)據(jù)庫。數(shù)據(jù)庫的取值應該在0-(db-1)
12.save將內存數(shù)據(jù)庫的內容寫到文件中。格式為:
save
比如:
save 900 1 900秒內有一次key修改 save 300 10 300秒內有10次修改 save 60 1000013.stop-writes-on-bgsave-error
當redis寫入到文件操作失敗后,redis將不會接受內存寫操作。用來提醒用戶數(shù)據(jù)持久化失敗。
stop-writes-on-bgsave-error yes
如果對redis進行了持久化監(jiān)控,可以將此項配置成no,實現(xiàn)即使出現(xiàn)持久化問題,redis依然可以接受內存寫操作。
14.dbfilename配置redis轉存文件的地址
dbfilename dump.rdb15.dir
配置數(shù)據(jù)庫文件位置:
dir ./16.主從復制相關
1.redis的主從復制是異步的,可以配置當某幾個slave數(shù)據(jù)庫連不上的時候,停止接收內存寫操作。
2.主從數(shù)據(jù)同步是自動完成的,當主從網(wǎng)絡短線重新連接的時候,從庫會自動從新數(shù)據(jù)同步。
slaveof
用于配置主庫ip地址和端口。
masterauth
配置主庫的數(shù)據(jù)庫密碼。
slave-serve-stale-data yes
次配置用于設置當slave和master失去連接的時候是否繼續(xù)接受客戶端連接。當此項目設置為yes的時候會返回過期的數(shù)據(jù)或者null,當設置為no的時候會返回error:
SYNC with master in progress
設置slave是否接受寫操作:
slave-read-only yes
slave可用于保存短暫的數(shù)據(jù),當從庫和主庫同步數(shù)據(jù)的時候,會將寫入到slave的數(shù)據(jù)刪除。
repl-diskless-sync no復制同步策略配置:disk or socket.
當增加新的slave數(shù)據(jù)庫或者斷開后重新連接的時候,會發(fā)生全量同步,這時候是將redis的db文件直接從主庫傳輸?shù)綇膸?。文件傳輸有兩種方式:
第一種:先將內存數(shù)據(jù)寫入磁盤,然后再將生成的文件傳輸?shù)絪lave。 第二種:直接新起一個進程,將數(shù)據(jù)通過socket傳輸?shù)絪lave
根據(jù)網(wǎng)絡速度和磁盤速度選擇不同的復制方式。
repl-ping-slave-period 10slave向master發(fā)送ping請求的時間間隔。
repl-timeout 60超時時間,應該小于repl-ping-slave-period
repl-disable-tcp-nodelay no設置是否會有延遲時間。設置為no的時候主庫和從庫數(shù)據(jù)傳輸?shù)难舆t時間較短。但是消耗帶寬比較大。
repl-backlog-size 1mb設置slave斷開連接的時候數(shù)據(jù)的緩沖區(qū),在緩沖區(qū)沒有用完之前,從庫回復鏈接只需要從緩沖區(qū)同步數(shù)據(jù),不需要全量同步。只有當有從庫的時候才會設置此項。
repl-backlog-ttl 3600設置當master沒有slave連接的時候,多久釋放緩沖區(qū)。設置為0的時候表示不釋放緩沖區(qū)。
slave-priority 100設置slave的優(yōu)先級,當master宕機的時候會選出一個優(yōu)先級最低的slave提升為主庫。0表示不能當作master
當slave少于3個鏈接的時候,master停止接受寫入。判斷失聯(lián)時間為:10s內slave沒有從master復制數(shù)據(jù),則表示失聯(lián)。
min-slaves-to-write 3 默認設置為0,關閉此功能 min-slaves-max-lag 1017.安全設置相關
requirepass 123456
用于設置客戶端連接密碼。
rename-command CONFIG b840fc02d524045429941cc15f59e41cb7be6c52
命令重命名。
maxclients 10000
設置最大客戶端連接數(shù)量。
maxmemory
設置最大內存。
當redis內存達到上限的時候,會根據(jù)配置的垃圾回收策略刪除key。當沒有設置垃圾回收策略的時候,redis會對寫操作報異常,都操作仍然正常返回數(shù)據(jù)。
當沒有設置此配置項的時候,只有當系統(tǒng)內存達到上限的時候會拋出out-of-memory exception異常。
maxmemory-policy noeviction 默認配置 volatile-lru -> 使用最近最少使用算法刪除過期的key allkeys-lru -> 根據(jù)最近最少使用算法刪除key volatile-random -> 從過期的key中隨機刪除 allkeys-random -> 隨機刪除key volatile-ttl -> 刪除最近過期的key noeviction -> 直接在寫操作的時候返回error
LRU算法中的樣本數(shù),比如redis會檢查5個key中的lru
maxmemory-samples 5
需要開啟集群配置的才能當作Redis集群的一個節(jié)點:
cluster-enabled:
該項如果設置成yes,該實例支持redis集群。否則該實例會像往常一樣以獨立模式啟動。
集群的每一個節(jié)點都需要有一個配置文件,這個文件由redis生成和更新的。
cluster-config-file nodes-6379.conf
必須注意到盡管該項是可選的,這并不是一個用戶可以編輯的配置文件,這是redis集群節(jié)點自動生成的配置文件,每次一旦配置有修改它都通過該配置文件來持久化配置(基本上都是狀態(tài)),這樣在下次啟動的時候可以重新讀取這些配置。該文件中列出了該集群中的其他節(jié)點的狀態(tài),持久化變量等信息。 當節(jié)點收到一些信息的時候該文件就會被沖重寫
節(jié)點過期時間配置,當超過此時間則認為此節(jié)點為失敗狀態(tài)。
cluster-node-timeout 15000
redis集群節(jié)點的最大超時時間。響應超過這個時間的話該節(jié)點會被認為是掛掉了。如果一個master節(jié)點超過一定的時候無法訪問,它會被它的slave取代。 該參數(shù)在redis集群配置中很重要。很明顯,當節(jié)點無法訪問大部分master節(jié)點超過一定時間后,它會停止接受查詢請求。
cluster-slave-validity-factor
:如果將該項設置為0,不管slave節(jié)點和master節(jié)點間失聯(lián)多久都會一直嘗試failover(設為正數(shù),失聯(lián)大于一定時間(factor*節(jié)點TimeOut),不再進行FailOver)。比如,如果節(jié)點的timeout設置為5秒,該項設置為10,如果master跟slave之間失聯(lián)超過50秒,slave不會去failover它的master(意思是不會去把master設置為掛起狀態(tài),并取代它)。注意:任意非0數(shù)值都有可能導致當master掛掉又沒有slave去failover它,這樣redis集群不可用。在這種情況下只有原來那個master重新回到集群中才能讓集群恢復工作。
cluster-migration-barrier:
一個master可以擁有的最小slave數(shù)量。該項的作用是,當一個master沒有任何slave的時候,某些有富余slave的master節(jié)點,可以自動的分一個slave給它。具體參見手冊中的replica migration章節(jié)
cluster-require-full-coverage:
如果該項設置為yes(默認就是yes) 當一定比例的鍵空間沒有被覆蓋到(就是某一部分的哈希槽沒了,有可能是暫時掛了)集群就停止處理任何查詢操作。如果該項設置為no,那么就算請求中只有一部分的鍵可以被查到,一樣可以查詢(但是有可能會查不全)
19.慢查日志slowlog-log-slower-than 1000000
此配置項指定查詢時間超過多少的操作,打印日志。1000000=1s。當此配置為0的時候記錄每次查詢操作。為負數(shù)的時候關閉此功能。
slowlog-max-len 128
它決定 slow log 最多能保存多少條日志, slow log 本身是一個 FIFO 隊列,當隊列大小超過 slowlog-max-len 時,最舊的一條日志將被刪除,而最新的一條日志加入到 slow log ,以此類推。
20.推送/訂閱功能notify-keyspace-events ""
空的時候關閉此功能,選項值為非空字符串時,啟用該功能,非空字符串由特定的多個字符組成,每個字符表示不同的意義:
K:keyspace事件,事件以__keyspace@__為前綴進行發(fā)布; E:keyevent事件,事件以__keyevent@ __為前綴進行發(fā)布; g:一般性的,非特定類型的命令,比如del,expire,rename等; $:字符串特定命令; l:列表特定命令; s:集合特定命令; h:哈希特定命令; z:有序集合特定命令; x:過期事件,當某個鍵過期并刪除時會產(chǎn)生該事件; e:驅逐事件,當某個鍵因maxmemore策略而被刪除時,產(chǎn)生該事件; A:g$lshzxe的別名,因此”AKE”意味著所有事件。
注意,該選項的值中至少需要包含K或者E,否則不會發(fā)布任何事件。比如,如果需要開啟針對列表的keyspace事件通知,則該選項需要配置為“Kl”;
文章版權歸作者所有,未經(jīng)允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉載請注明本文地址:http://m.hztianpu.com/yun/69236.html
閱讀 2187·2021-09-22 16:05
閱讀 9527·2021-09-22 15:03
閱讀 2947·2019-08-30 15:53
閱讀 1767·2019-08-29 11:15
閱讀 975·2019-08-26 13:52
閱讀 2435·2019-08-26 11:32
閱讀 1876·2019-08-26 10:38
閱讀 2640·2019-08-23 17:19