redis配置查看方式:
1.redis的安裝目錄查看redis.conf
2.登陸redis客戶端,使用 config get xx命令。
比如:查看所有的配置: config get *
[root@localhost redis-2.6.10]# redis-cli redis 127.0.0.1:6379> config get * 1) "dbfilename" 2) "dump.rdb" 3) "requirepass" 4) "" 5) "masterauth" 6) "" 7) "bind" 8) "" 9) "unixsocket" 10) "" 11) "logfile" 12) "" 13) "pidfile" 14) "/var/run/redis.pid" 15) "maxmemory" 16) "0" 17) "maxmemory-samples" 18) "3"
........省略........
查看某一個參數設置, config get slaveof
redis 127.0.0.1:6379> config get slaveof 1) "slaveof" 2) ""
參數詳解:
#默認情況下,redis不是在後臺運行的,如果需要在後臺運行,把該項的值更改爲yes daemonize no #當redis在後臺運行的時候,Redis默認會把pid文件放在/var/run/redis.pid,你可以配置到其他地址。 #當運行多個redis服務時,需要指定不同的pid文件和端口 pidfile /var/run/redis.pid #指定redis運行的端口,默認是6379 port 6379 #指定redis只接收來自於該IP地址的請求,如果不進行設置,那麼將處理所有請求, #在生產環境中最好設置該項 #bind 127.0.0.1 #設置客戶端連接時的超時時間,單位爲秒。當客戶端在這段時間內沒有發出任何指令,那麼關閉該連接 #0是關閉此設置 timeout 0 #指定TCP連接是否爲長連接,"偵探"信號有server端維護,長連接將會額外的增加server端的開支(TCP socket選項) #默認爲0.表示禁用,非0值表示開啓"長連接";"偵探"信號的發送間隔將有linux系統決定 #在多次"偵探"後,如果對等端(客戶端socket)仍不回覆,將會關閉連接,否則連接將會被保持開啓. #client端socket也可以通過配置keepalive選項,開啓"長連接".(單位:秒) tcp-keepalive 0 #指定日誌記錄級別 #Redis總共支持四個級別:debug、verbose、notice、warning,默認爲verbose #debug 記錄很多信息,用於開發和測試 #varbose 有用的信息,不像debug會記錄那麼多 #notice 普通的verbose,常用於生產環境 #warning 只有非常重要或者嚴重的信息會記錄到日誌 loglevel notice #配置log文件地址 #默認值爲stdout,標準輸出,若後臺模式會輸出到/dev/null #logfile stdout logfile stdout #設定redis所允許的最大"db簇"的個數,默認爲16個簇. #客戶端可以通過"select"指令指定需要使用的"db簇"索引號,默認爲0. #redis的頂層數據結構中,所有K-V都潛在的包括了"db簇"索引號,任何一個key都將隸屬於一個"db". #任何對數據的檢索,只會覆蓋指定的"db";例如數據被插入到"db 10"中,那麼在"db 1"中去get,將會返回null. #對數據歸類到不同的db簇中,可以幫助我們實現一些特定的需求,比如根據不同客戶端連接,來指定不同的db索引號. databases 16 ################################SNAPSHOTTING ################################# # #保存數據到磁盤,格式如下: # #save <seconds> <changes> # #指出在多長時間內,有多少次更新操作,就將數據同步到數據文件rdb。 #相當於條件觸發抓取快照,這個可以多個條件配合 # #比如默認配置文件中的設置,就設置了三個條件 # #900秒(15分鐘)內至少1個key值改變(則進行數據庫保存--持久化) #300秒(5分鐘)內至少10個key值改變(則進行數據庫保存--持久化) #60秒(1分鐘)內至少10000個key值改變(則進行數據庫保存--持久化) #註釋:註釋掉“save”這一行配置項就可以讓保存數據庫功能失效。 # #你也可以通過增加一個只有一個空字符串的配置項(save "" )來去掉前面的“save”配置。 # save 900 1 save 300 10 save 60 10000 #在默認情況下,如果RDB快照持久化操作被激活(至少一個條件被激活)並且持久化操作失敗,Redis則會停止接受更新操作。 #這樣會讓用戶瞭解到數據沒有被正確的存儲到磁盤上。否則沒人會注意到這個問題,可能會造成災難。 # #如果後臺存儲(持久化)操作進程再次工作,Redis會自動允許更新操作。 # #然而,如果你已經恰當的配置了對Redis服務器的監視和備份,你也許想關掉這項功能。 #如此一來即使後臺保存操作出錯,redis也仍然可以繼續像平常一樣工作。 stop-writes-on-bgsave-error yes #是否在導出.rdb數據庫文件的時候採用LZF壓縮字符串和對象? #默認情況下總是設置成‘yes’, 他看起來是一把雙刃劍。 #如果你想在存儲的子進程中節省一些CPU就設置成'no', #但是這樣如果你的kye/value是可壓縮的,你的到處數據就會很大。 rdbcompression yes #從版本RDB版本5開始,一個CRC64的校驗就被放在了文件末尾。 #這會讓格式更加耐攻擊,但是當存儲或者加載rbd文件的時候會有一個10%左右的性能下降, #所以,爲了達到性能的最大化,你可以關掉這個配置項。 # #沒有校驗的RDB文件會有一個0校驗位,來告訴加載代碼跳過校驗檢查。 rdbchecksum yes #導出數據庫的文件名稱 dbfilename dump.rdb #工作目錄 # #導出的數據庫會被寫入這個目錄,文件名就是上面'dbfilename'配置項指定的文件名。 # #只增的文件也會在這個目錄創建(這句話沒看明白) # #注意你一定要在這個配置一個工作目錄,而不是文件名稱。 dir ./ #################################REPLICATION ################################# #如果當前server是slave,那麼當slave與master失去通訊時,是否繼續爲客戶端提供服務,"yes"表示繼續,"no"表示終止. #在"yes"情況下,slave繼續向客戶端提供只讀服務,有可能此時的數據已經過期. #在"no"情況下,任何向此server發送的數據請求服務(包括客戶端和此server的slave)都將被告知"error" slave-serve-stale-data yes #slave是否爲"只讀",強烈建議爲"yes" slave-read-only yes #slave與master的連接,是否禁用TCP nodelay選項. #"yes"表示禁用,那麼socket通訊中數據將會以packet方式發送(packet大小受到socket buffer限制), #可以提高socket通訊的效率(tcp交互次數),但是小數據將會被buffer,不會被立即發送,對於接受者可能存在延遲. #"no"表示開啓tcp nodelay選項,任何數據都會被立即發送,及時性較好,但是效率較低 #建議爲"no" repl-disable-tcp-nodelay no #適用Sentinel模塊(unstable,M-S集羣管理和監控),需要額外的配置文件支持 #slave的權重值,默認100.當master失效後,Sentinel將會從slave列表中找到權重值最低(>0)的slave,並提升爲master #如果權重值爲0,表示此slave爲"觀察者",不參與master選舉 slave-priority 100 ##################################SECURITY ################################### ###################################LIMITS #################################### ##############################APPEND ONLY MODE ############################### #默認情況下,redis會在後臺異步的把數據庫鏡像備份到磁盤,但是該備份是非常耗時的,而且備份也不能很頻繁,如果發生諸如拉閘限電、拔插頭等狀況,那麼將造成比較大範圍的數據丟失。 #所以redis提供了另外一種更加高效的數據庫備份及災難恢復方式。 #開啓append only模式之後,redis會把所接收到的每一次寫操作請求都追加到appendonly.aof文件中,當redis重新啓動時,會從該文件恢復出之前的狀態。 #但是這樣會造成appendonly.aof文件過大,所以redis還支持了BGREWRITEAOF指令,對appendonly.aof 進行重新整理。 #你可以同時開啓asynchronous dumps 和 AOF appendonly no # Redis支持三種同步AOF文件的策略: # # no: 不進行同步,系統去操作 . Faster. # always: always表示每次有寫操作都進行同步. Slow, Safest. # everysec: 表示對寫操作進行累積,每秒同步一次. Compromise. # # 默認是"everysec",按照速度和安全折中這是最好的。 # 如果想讓Redis能更高效的運行,你也可以設置爲"no",讓操作系統決定什麼時候去執行 # 或者相反想讓數據更安全你也可以設置爲"always" # # 如果不確定就用 "everysec". appendfsync everysec # AOF策略設置爲always或者everysec時,後臺處理進程(後臺保存或者AOF日誌重寫)會執行大量的I/O操作 # 在某些Linux配置中會阻止過長的fsync()請求。注意現在沒有任何修復,即使fsync在另外一個線程進行處理 # # 爲了減緩這個問題,可以設置下面這個參數no-appendfsync-on-rewrite no-appendfsync-on-rewrite no # AOF 自動重寫 # 當AOF文件增長到一定大小的時候Redis能夠調用 BGREWRITEAOF 對日誌文件進行重寫 # # 它是這樣工作的:Redis會記住上次進行些日誌後文件的大小(如果從開機以來還沒進行過重寫,那麼大小在開機的時候確定) # # 基礎大小會同現在的大小進行比較。如果現在的大小比基礎大小大制定的百分比,重寫功能將啓動 # 同時需要指定一個最小大小用於AOF重寫,這個用於阻止即使文件很小但是增長幅度很大也去重寫AOF文件的情況 # 設置 percentage 爲0就關閉這個特性 auto-aof-rewrite-percentage 100 auto-aof-rewrite-min-size 64mb ################################LUA SCRIPTING ############################### # lua腳本可執行的最大毫秒數。若超過最大值,則查詢會報錯。 # 設置0或者負數,則表示不限制 lua-time-limit 5000 ##################################SLOW LOG ################################### #慢查詢,執行時長超過10000微秒的即爲慢查詢 slowlog-log-slower-than 10000 #保存的日誌數量,鏈式存儲的慢查詢日誌,新的添加到鏈表的表頭,數量超出128的會被刪除。 slowlog-max-len 128 ###############################ADVANCED CONFIG ############################### #ziplist中允許存儲的最大條目個數,建議爲128 hash-max-ziplist-entries 512 #ziplist中允許條目value值最大字節數,建議爲1024 hash-max-ziplist-value 64 #對於list類型,將會採取ziplist,linkedlist兩種編碼類型. list-max-ziplist-entries 512 list-max-ziplist-value 64 #intset中允許保存的最大條目個數,如果達到閥值,intset將會被重構爲hashtable set-max-intset-entries 512 #zset爲有序集合,有2中編碼類型:ziplist,skiplist #因爲"排序"將會消耗額外的性能,當zset中數據較多時,將會被重構爲skiplist. zset-max-ziplist-entries 128 zset-max-ziplist-value 64 #是否開啓頂層數據結構的rehash功能,如果內存允許,請開啓. #rehash能夠很大程度上提高K-V存取的效率. activerehashing yes #在客戶端與server進行的交互中,每個連接都會與一個buffer關聯,此buffer用來隊列化亟待被client接受的響應信息. #如果client不能及時的消費響應信息,那麼buffer將會被不斷積壓而給server帶來內存壓力.如果buffer中積壓的數據達到閥值,將會 #導致連接被關閉,buffer被移除." #buffer控制類型包括: # normal -> 普通連接 # slave ->與slave之間的連接 # pubsub ->pub/sub類型連接,此類型的連接,往往會產生此種問題;因爲pub端會密集的發佈消息,但是sub端可能消費不足. #指令格式:client-output-buffer-limit <class> <hard> <soft> <seconds>",其中hard表示buffer最大值,一旦達到閥值將立即關閉連接; #soft表示"容忍值",它和seconds配合,如果buffer值超過soft且持續時間達到了seconds,也將立即關閉連接,如果超過了soft但是在seconds之後 #buffer數據小於了soft,連接將會被保留. #其中hard和soft都設置爲0,則表示禁用buffer控制.通常hard值大於soft. client-output-buffer-limit normal 0 0 0 client-output-buffer-limit slave 256mb 64mb 60 client-output-buffer-limit pubsub 32mb 8mb 60 ##################################INCLUDES ###################################