溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

redis 配置文件詳解

發(fā)布時間:2020-08-08 21:40:14 來源:ITPUB博客 閱讀:162 作者:haoge0205 欄目:關(guān)系型數(shù)據(jù)庫

bind 0.0.0.0                 #綁定redis服務器網(wǎng)卡IP,默認為127.0.0.1,即本地回環(huán)地址。這樣的話,訪問redis服務只能通過本機的客戶端連接,而無法通過遠程連接。如果bind選項為空的話,那會接受所有來自于可用網(wǎng)絡接口的連接。

protected-mode no            #設置為yes表示指定Redis以守護進程的方式啟動(后臺啟動)。默認值為 no

port 7007

tcp-backlog 511

timeout 0                    #設置客戶端連接時的超時時間,單位為秒。當客戶端在這段時間內(nèi)沒有發(fā)出任何指令,那么關(guān)閉該連接。默認值為0,表示不關(guān)閉。

tcp-keepalive 300         #單位是秒,表示將周期性的使用SO_KEEPALIVE檢測客戶端是否還處于健康狀態(tài),避免服務器一直阻塞,官方給出的建議值是300s,如果設置為0,則不會周期性的檢測。

daemonize yes                #是否后臺運行,yes后臺運行;no不是后臺運行

supervised no

pidfile "/u01/redis/7007/pid/redis_7007.pid"    #redis進程文件路徑

loglevel warning            #loglevel :定義日志級別。默認值為notice,有如下4種取值:

                             debug(記錄大量日志信息,適用于開發(fā)、測試階段)

                             verbose(較多日志信息)

                             notice(適量日志信息,使用于生產(chǎn)環(huán)境)

                             warning(僅有部分重要、關(guān)鍵信息才會被記錄)

logfile "/u01/redis/7007/log/redis_7007.log"    #redis日志文件路徑

masterauth "ysBhqkYHDifB"                       # 

requirepass "ysBhqkYHDifB"                      #

databases 16           #設置數(shù)據(jù)庫的數(shù)目。默認的數(shù)據(jù)庫是DB 0 ,可以在每個連接上使用select  <dbid> 命令選擇一個不同的數(shù)據(jù)庫,dbid是一個介于0到databases - 1 之間的數(shù)值。默認值是 16,也就是說默認Redis有16個數(shù)據(jù)庫。

stop-writes-on-bgsave-error yes    #默認值為yes。當啟用了RDB且最后一次后臺保存數(shù)據(jù)失敗,Redis是否停止接收數(shù)據(jù)。這會讓用戶意識到數(shù)據(jù)沒有正確持久化到磁盤上,否則沒有人會注意到災難(disaster)發(fā)生了。如果Redis重啟了,那么又可以重新開始接收數(shù)據(jù)了

rdbcompression yes     #默認值是yes。對于存儲到磁盤中的快照,可以設置是否進行壓縮存儲。如果是的話,redis會采用LZF算法進行壓縮。如果你不想消耗CPU來進行壓縮的話,可以設置為關(guān)閉此功能,但是存儲在磁盤上的快照會比較大。

rdbchecksum yes    #默認值是yes。在存儲快照后,我們還可以讓redis使用CRC64算法來進行數(shù)據(jù)校驗,但是這樣做會增加大約10%的性能消耗,如果希望獲取到最大的性能提升,可以關(guān)閉此功能。

dbfilename "redis_7007_dump.rdb"   #設置快照的文件名,默認是 dump.rdb

dir "/u01/redis/7007/data"      #設置快照文件的存放路徑,這個配置項一定是個目錄,而不能是文件名。使用上面的 dbfilename 作為保存的文件名。

slave-serve-stale-data yes  #默認值為yes。當一個 slave 與 master 失去聯(lián)系,或者復制正在進行的時候,slave 可能會有兩種表現(xiàn):

                             1) 如果為 yes ,slave 仍然會應答客戶端請求,但返回的數(shù)據(jù)可能是過時,或者數(shù)據(jù)可能是空的在第一次同步的時候 

                             2) 如果為 no ,在你執(zhí)行除了 info he salveof 之外的其他命令時,slave 都將返回一個 "SYNC with master in progress" 的錯誤

slave-read-only yes      #配置Redis的Slave實例是否接受寫操作,即Slave是否為只讀Redis。默認值為yes。

repl-diskless-sync no     #主從數(shù)據(jù)復制是否使用無硬盤復制功能。默認值為no。

repl-diskless-sync-delay 5   #當啟用無硬盤備份,服務器等待一段時間后才會通過套接字向從站傳送RDB文件,這個等待時間是可配置的。  這一點很重要,因為一旦傳送開始,就不可能再為一個新到達的從站服務。從站則要排隊等待下一次RDB傳送。因此服務器等待一段  時間以期更多的從站到達。延遲時間以秒為單位,默認為5秒。要關(guān)掉這一功能,只需將它設置為0秒,傳送會立即啟動。默認值為5。

repl-disable-tcp-nodelay no   #同步之后是否禁用從站上的TCP_NODELAY 如果你選擇yes,redis會使用較少量的TCP包和帶寬向從站發(fā)送數(shù)據(jù)。但這會導致在從站增加一點數(shù)據(jù)的延時。  Linux內(nèi)核默認配置情況下最多40毫秒的延時。如果選擇no,從站的數(shù)據(jù)延時不會那么多,但備份需要的帶寬相對較多。默認情況下我們將潛在因素優(yōu)化,但在高負載情況下或者在主從站都跳的情況下,把它切換為yes是個好主意。默認值為no。

slave-priority 100       #

min-slaves-to-write 0

min-slaves-max-lag 10

maxmemory 2gb          #設置客戶端最大并發(fā)連接數(shù),默認無限制,Redis可以同時打開的客戶端連接數(shù)為Redis進程可以打開的最大文件。描述符數(shù)-32(redis server自身會使用一些),如果設置 maxclients為0 。表示不作限制。當客戶端連接數(shù)到達限制時,Redis會關(guān)閉新的連接并向客戶端返回max number of clients reached錯誤信息。

maxmemory-policy volatile-lru   #當內(nèi)存使用達到最大值時,redis使用的清楚策略。有以下幾種可以選擇:

                                 1)volatile-lru   利用LRU算法移除設置過過期時間的key (LRU:最近使用 Least Recently Used ) 

                                 2)allkeys-lru   利用LRU算法移除任何key 

                                 3)volatile-random 移除設置過過期時間的隨機key 

                                 4)allkeys-random  移除隨機ke

                                 5)volatile-ttl   移除即將過期的key(minor TTL) 

                                 6)noeviction  noeviction   不移除任何key,只是返回一個寫錯誤 ,默認選項

appendonly no   #默認redis使用的是rdb方式持久化,這種方式在許多應用中已經(jīng)足夠用了。但是redis如果中途宕機,會導致可能有幾分鐘的數(shù)據(jù)丟失,根據(jù)save來策略進行持久化,Append Only File是另一種持久化方式,  可以提供更好的持久化特性。Redis會把每次寫入的數(shù)據(jù)在接收后都寫入appendonly.aof文件,每次啟動時Redis都會先把這個文件的數(shù)據(jù)讀入內(nèi)存里,先忽略RDB文件。默認值為no。

appendfilename "appendonly.aof"    #aof文件名,默認是"appendonly.aof"

appendfsync everysec   #aof持久化策略的配置;no表示不執(zhí)行fsync,由操作系統(tǒng)保證數(shù)據(jù)同步到磁盤,速度最快;always表示每次寫入都執(zhí)行fsync,以保證數(shù)據(jù)同步到磁盤;everysec表示每秒執(zhí)行一次fsync,可能會導致丟失這1s數(shù)據(jù)

no-appendfsync-on-rewrite no    #在aof重寫或者寫入rdb文件的時候,會執(zhí)行大量IO,此時對于everysec和always的aof模式來說,執(zhí)行fsync會造成阻塞過長時間,no-appendfsync-on-rewrite字段設置為默認設置為no。如果對延遲要求很高的應用,這個字段可以設置為yes,否則還是設置為no,這樣對持久化特性來說這是更安全的選擇。   設置為yes表示rewrite期間對新寫操作不fsync,暫時存在內(nèi)存中,等rewrite完成后再寫入,默認為no,建議yes。Linux的默認fsync策略是30秒??赡軄G失30秒數(shù)據(jù)。默認值為no。

auto-aof-rewrite-percentage 100   默認值為100。aof自動重寫配置,當目前aof文件大小超過上一次重寫的aof文件大小的百分之多少進行重寫,即當aof文件增長到一定大小的時候,Redis能夠調(diào)用bgrewriteaof對日志文件進行重寫。當前AOF文件大小是上次日志重寫得到AOF文件大小的二倍(設置為100)時,自動啟動新的日志重寫過程。

auto-aof-rewrite-min-size 64mb   #設置允許重寫的最小aof文件大小,避免了達到約定百分比但尺寸仍然很小的情況還要重寫。

aof-load-truncated yes     #aof文件可能在尾部是不完整的,當redis啟動的時候,aof文件的數(shù)據(jù)被載入內(nèi)存。重啟可能發(fā)生在redis所在的主機操作系統(tǒng)宕機后,尤其在ext4文件系統(tǒng)沒有加上data=ordered選項,出現(xiàn)這種現(xiàn)象  redis宕機或者異常終止不會造成尾部不完整現(xiàn)象,可以選擇讓redis退出,或者導入盡可能多的數(shù)據(jù)。如果選擇的是yes,當截斷的aof文件被導入的時候,會自動發(fā)布一個log給客戶端然后load。如果是no,用戶必須手動redis-check-aof修復AOF文件才可以。默認值為 yes。

lua-time-limit 5000       #一個lua腳本執(zhí)行的最大時間,單位為ms。默認值為5000.

cluster-enabled yes         #集群開關(guān),默認是不開啟集群模式。

cluster-config-file "nodes-7007.conf"        #集群配置文件的名稱,每個節(jié)點都有一個集群相關(guān)的配置文件,持久化保存集群的信息。 這個文件并不需要手動配置,這個配置文件有Redis生成并更新,每個Redis集群節(jié)點需要一個單獨的配置文件。請確保與實例運行的系統(tǒng)中配置文件名稱不沖突。默認配置為nodes-6379.conf。

cluster-node-timeout 15000            #可以配置值為15000。節(jié)點互連超時的閥值,集群節(jié)點超時毫秒數(shù)

slowlog-log-slower-than 10000          #

slowlog-max-len 128

latency-monitor-threshold 0

notify-keyspace-events ""

hash-max-ziplist-entries 512

hash-max-ziplist-value 64

list-max-ziplist-size -2

list-compress-depth 0

set-max-intset-entries 512

zset-max-ziplist-entries 128

zset-max-ziplist-value 64

hll-sparse-max-bytes 3000

activerehashing yes

client-output-buffer-limit normal 0 0 0

client-output-buffer-limit slave 0 0 0

client-output-buffer-limit pubsub 32mb 8mb 60

hz 10

aof-rewrite-incremental-fsync yes

# Generated by CONFIG REWRITE

cluster-require-full-coverage no    #默認情況下,集群全部的slot有節(jié)點負責,集群狀態(tài)才為ok,才能提供服務。  設置為no,可以在slot沒有全部分配的時候提供服務。不建議打開該配置,這樣會造成分區(qū)的時候,小分區(qū)的master一直在接受寫請求,而造成很長時間數(shù)據(jù)不一致。


##LAZYFREE

lazyfree-lazy-eviction yes

lazyfree-lazy-expire yes

lazyfree-lazy-server-del yes

repl-timeout 600

cluster-migration-barrier 0    #可以配置值為1。master的slave數(shù)量大于該值,slave才能遷移到其他孤立master上,如這個參數(shù)若被設為2,那么只有當一個主節(jié)點擁有2 個可工作的從節(jié)點時,它的一個從節(jié)點會嘗試遷移。

cluster-slave-validity-factor 600     #可以配置值為10。在進行故障轉(zhuǎn)移的時候,全部slave都會請求申請為master,但是有些slave可能與master斷開連接一段時間了,  導致數(shù)據(jù)過于陳舊,這樣的slave不應該被提升為master。該參數(shù)就是用來判斷slave節(jié)點與master斷線的時間是否過長。判斷方法是:比較slave斷開連接的時間和(node-timeout * slave-validity-factor) + repl-ping-slave-period     如果節(jié)點超時時間為三十秒, 并且slave-validity-factor為10,假設默認的repl-ping-slave-period是10秒,即如果超過310秒slave將不會嘗試進行故障轉(zhuǎn)移


向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI