redis配置參數簡介

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 ###################################

  

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章