[root@web01 blog]# egrep -v"#|^$" /application/redis/conf/6379.confnode
bind127.0.0.1 #綁定的主機地址,不設置默認將處理全部請求web
protected-modeyes # 3.2裏的參數,是否開啓保護模式,默認開啓。要是配置裏沒有指定bind和密碼。開啓該參數後,redis只會本地進行訪問,拒絕外部訪問。要是開啓了密碼 和bind,能夠開啓。否 則最好關閉,設置爲noredis
port6379 #指定redis監聽端口算法
tcp-backlog511 #此 參數肯定了TCP鏈接中已完成隊列(完成三次握手以後)的長度, 固然此值必須不大於Linux系統定義的/proc/sys/net/core/somaxconn值,默認是511,而Linux的默認參數值是 128。當系統併發量大而且客戶端速度緩慢的時候,能夠將這二個參數一塊兒參考設定。該內核參數默認值通常是128,對於負載很大的服務程序來講大大的不 夠。通常會將它修改成2048或者更大。在/etc/sysctl.conf中添加:net.core.somaxconn =2048,而後在終端中執行sysctl -p數據庫
timeout0 #當 客戶端閒置多長時間後關閉鏈接,若是指定爲0,表示關閉該功能安全
tcp-keepalive300 #如 果設置不爲0,就使用配置tcp的SO_KEEPALIVE值,使用keepalive有兩個好處:檢測掛掉的對端。下降中間設備出問題而致使網絡看似連 接卻已經與對端端口的問題。在Linux內核中,設置了keepalive,redis會定時給對端發送ack。檢測到對端關閉須要兩倍的設置值。服務器
daemonizeno #當爲yes的時候,以守護進程的模式運行(後臺運行)網絡
supervisedno能夠經過upstart和systemd管理Redis守護進程,這個參數是和具體的操做系統相關的數據結構
pidfile/var/run/redis_6379.pid #當redis以守護進程方式運行時,默認寫入pid的文件及路徑併發
loglevelnotice 日誌級別,要用warning
logfile"" #指定了記錄日誌的文件。空字符串的話,日誌會打印到標準輸出設備。後臺運行的redis標準輸出是/dev/null
databases16 數據庫的數量,默認使用的數據庫是DB 0。能夠經過」SELECT 「命令選擇一個db
save900 1 #900秒有一個key變化,就作一個保存
save300 10 #300秒有10個key變化,就作一個保存,這裏須要和開發溝通
save60 10000 #60秒有10000個key變化就作一個保存
stop-writes-on-bgsave-erroryes #在出現錯誤的時候,是否是要中止保存
rdbcompressionyes使用壓縮rdb文件,rdb文件壓縮使用LZF壓縮算法,yes:壓縮,可是須要一些cpu的消耗。no:不壓縮,須要更多的磁盤空間
rdbchecksumyes是否校驗rdb文件。從rdb格式的第五個版本開始,在rdb文件的末尾會帶上CRC64的校驗和。這跟有利於文件的容錯性,可是在保存rdb文件的時候,會有大概10%的性能損耗,因此若是你追求高性能,能夠關閉該配置。
dbfilenamedump.rdb rdb文件的名稱
dir./ 數據目錄,數據庫的寫入會在這個目錄。rdb、aof文件也會寫在這個目錄
slave-serve-stale-datayes當 從庫同主機失去鏈接或者複製正在進行,從機庫有兩種運行方式:1) 若是slave-serve-stale-data設置爲yes(默認設置),從庫會繼續響應客戶端的請求。2) 若是slave-serve-stale-data設置爲no,除去INFO和SLAVOF命令以外的任何請求都會返回一個錯誤」SYNC with master in progress」
slave-read-onlyyes做爲從服務器,默認狀況下是隻讀的(yes),能夠修改爲NO,用於寫(不建議)
repl-diskless-syncno是否使 用socket方式複製數據。目前redis複製提供兩種方式,disk和socket。若是新的slave連上來或者重連的slave沒法部分同步,就 會執行全量同步,master會生成rdb文件。有2種方式:disk方式是master建立一個新的進程把rdb文件保存到磁盤,再把磁盤上的rdb文 件傳遞給slave。socket是master建立一個新的進程,直接把rdb文件以socket的方式發給slave。disk方式的時候,當一個 rdb保存的過程當中,多個slave都能共享這個rdb文件。socket的方式就的一個個slave順序複製。在磁盤速度緩慢,網速快的狀況下推薦用 socket方式。
repl-diskless-sync-delay5 diskless複製的延遲時間,防止設置爲0。一旦複製開始,節點不會再接收新slave的複製請求直到下一個rdb傳輸。因此最好等待一段時間,等更多的slave連上來。
repl-disable-tcp-nodelayno是否禁止複製tcp連接的tcp nodelay[gs1] [gs2] 參 數,可傳遞yes或者no。默認是no,即便用tcp nodelay。若是master設置了yes來禁止tcp nodelay設置,在把數據複製給slave的時候,會減小包的數量和更小的網絡帶寬。可是這也可能帶來數據的延遲。默認咱們推薦更小的延遲,可是在數 據量傳輸很大的場景下,建議選擇yes。
slave-priority100當master不可用,Sentinel會根據slave的優先級選舉一個master。最低的優先級的slave,當選master。而配置成0,永遠不會被選舉。
appendonlyno #默認redis使用的是rdb方式持久 化,這種方式在許多應用中已經足夠用了。可是redis若是中途宕機,會致使可能有幾分鐘的數據丟失,根據save來策略進行持久化,Append Only File是另外一種持久化方式,能夠提供更好的持久化特性。Redis會把每次寫入的數據在接收後都寫入 appendonly.aof 文件,每次啓動時Redis都會先把這個文件的數據讀入內存裏,先忽略RDB文件
appendfilename"appendonly.aof" sof文件名
appendfsynceverysec #aof持久化策略的配置
#no表示不執行fsync,由操做系統保證數據同步到磁盤,速度最快。
#always表示每次寫入都執行fsync,以保證數據同步到磁盤。
#everysec表示每秒執行一次fsync,可能會致使丟失這1s數據。
no-appendfsync-on-rewriteno在 aof重寫或者寫入rdb文件的時候,會執行大量IO,此時對於everysec和always的aof模式來講,執行fsync會形成阻塞過長時 間,no-appendfsync-on-rewrite字段設置爲默認設置爲no。若是對延遲要求很高的應用,這個字段能夠設置爲yes,不然仍是設置 爲no,這樣對持久化特性來講這是更安全的選擇。設置爲yes表示rewrite期間對新寫操做不fsync,暫時存在內存中,等rewrite完成後再 寫入,默認爲no,建議yes。Linux的默認fsync策略是30秒。可能丟失30秒數據。
auto-aof-rewrite-percentage100 aof自 動重寫配置。當目前aof文件大小超過上一次重寫的aof文件大小的百分之多少進行重寫,即當aof文件增加到必定大小的時候Redis可以調用 bgrewriteaof對日誌文件進行重寫。當前AOF文件大小是上第二天志重寫獲得AOF文件大小的二倍(設置爲100)時,自動啓動新的日誌重寫過程。
auto-aof-rewrite-min-size64mb #設置容許重寫的最小aof文件大小,避免了達到約定百分比但尺寸仍然很小的狀況還要重寫
aof-load-truncatedyes#aof文 件可能在尾部是不完整的,當redis啓動的時候,aof文件的數據被載入內存。重啓可能發生在redis所在的主機操做系統宕機後,尤爲在ext4文件 系統沒有加上data=ordered選項(redis宕機或者異常終止不會形成尾部不完整現象。)出現這種現象,能夠選擇讓redis退出,或者導入盡 可能多的數據。若是選擇的是yes,當截斷的aof文件被導入的時候,會自動發佈一個log給客戶端而後load。若是是no,用戶必須手動redis- check-aof修復AOF文件才能夠。
lua-time-limit5000若是達到最大時間限制(毫秒),redis會記個log,而後返回error。當一個腳本超過了最大時限。只有SCRIPT KILL和SHUTDOWN NOSAVE能夠用。第一個能夠殺沒有調write命令的東西。要是已經調用了write,只能用第二個命令殺。
slowlog-log-slower-than10000 slog log是用來記錄redis運行中執行比較慢的命令耗時。當命令的執行超過了指定時間,就記錄在slow log中,slog log保存在內存中,因此沒有IO操做。
#執行時間比slowlog-log-slower-than大的請求記錄到slowlog裏面,單位是微秒,因此1000000就是1秒。注意,負數時間會禁用慢查詢日誌,而0則會強制記錄全部命令。
slowlog-max-len128慢查詢日誌長度。當一個新的命令被寫進日誌的時候,最老的那個記錄會被刪掉。這個長度沒有限制。只要有足夠的內存就行。你能夠經過 SLOWLOG RESET 來釋放內存。
latency-monitor-threshold0 #延遲監控功能是用來監控redis中執行比較緩慢的一些操做,用LATENCY打印redis實例在跑命令時的耗時圖表。只記錄大於等於下邊設置的值的操做。0的話,就是關閉監視。默認延遲監控功能是關閉的,若是你須要打開,也能夠經過CONFIGSET命令動態設置。
notify-keyspace-events""
#鍵空間通知使得客戶端能夠經過訂閱頻道或模式,來接收那些以某種方式改動了Redis 數據集的事件。由於開啓鍵空間通知功能須要消耗一些 CPU ,因此在默認配置下,該功能處於關閉狀態。
#notify-keyspace-events的參數能夠是如下字符的任意組合,它指定了服務器該發送哪些類型的通知:
##K 鍵空間通知,全部通知以 __keyspace@__ 爲前綴
##E 鍵事件通知,全部通知以 __keyevent@__ 爲前綴
##g DEL 、 EXPIRE 、RENAME 等類型無關的通用命令的通知
##$ 字符串命令的通知
##l 列表命令的通知
##s 集合命令的通知
##h 哈希命令的通知
##z 有序集合命令的通知
##x 過時事件:每當有過時鍵被刪除時發送
##e 驅逐(evict)事件:每當有鍵由於 maxmemory 政策而被刪除時發送
##A 參數 g$lshzxe 的別名
#輸入的參數中至少要有一個 K 或者 E,不然的話,無論其他的參數是什麼,都不會有任何 通知被分發。詳細使用能夠參考http://redis.io/topics/notifications
hash-max-ziplist-entries512#數據量小於等於hash-max-ziplist-entries的用ziplist,大於hash-max-ziplist-entries用hash
hash-max-ziplist-value64 #value大小小於等於hash-max-ziplist-value的用ziplist,大於hash-max-ziplist-value用hash。
list-max-ziplist-size-2
# The highestperforming option is usually -2 (8 Kb size) or -1 (4 Kb size),
# but if your use caseis unique, adjust the settings as necessary.
list-compress-depth0
set-max-intset-entries512 #數據量小於等於set-max-intset-entries用iniset,大於set-max-intset-entries用set。
zset-max-ziplist-entries128 #數據量小於等於zset-max-ziplist-entries用ziplist,大於zset-max-ziplist-entries用zset。
zset-max-ziplist-value64 #value大小小於等於zset-max-ziplist-value用ziplist,大於zset-max-ziplist-value用zset。
hll-sparse-max-bytes3000#value大 小小於等於hll-sparse-max-bytes使用稀疏數據結構(sparse),大於hll-sparse-max-bytes使用稠密的數據結 構(dense)。一個比16000大的value是幾乎沒用的,建議的value大概爲3000。若是對CPU要求不高,對空間要求較高的,建議設置到 10000左右。
activerehashingyes#Redis將 在每100毫秒時使用1毫秒的CPU時間來對redis的hash表進行從新hash,能夠下降內存的使用。當你的使用場景中,有很是嚴格的實時性須要, 不可以接受Redis時不時的對請求有2毫秒的延遲的話,把這項配置爲no。若是沒有這麼嚴格的實時性要求,能夠設置爲yes,以便可以儘量快的釋放內 存。
client-output-buffer-limitnormal 0 0 0
##對客戶端輸出緩衝進行限制能夠強迫那些不從服務器讀取數據的客戶端斷開鏈接,用來強制關閉傳輸緩慢的客戶端。
#對於normalclient,第一個0表示取消hard limit,第二個0和第三個0表示取消soft limit,normal client默認取消限制,由於若是沒有尋問,他們是不會接收數據的。
client-output-buffer-limitslave 256mb 64mb 60 #對於slaveclient和MONITER client,若是client-output-buffer一旦超過256mb,又或者超過64mb持續60秒,那麼服務器就會當即斷開客戶端鏈接。
client-output-buffer-limitpubsub 32mb 8mb 60 #對於pubsub client,若是client-output-buffer一旦超過32mb,又或者超過8mb持續60秒,那麼服務器就會當即斷開客戶端鏈接。
hz10 #redis執行任務的頻率爲1s除以hz。
aof-rewrite-incremental-fsyncyes #在aof重寫的時候,若是打開了aof-rewrite-incremental-fsync開關,系統會每32MB執行一次fsync。這對於把文件寫入磁盤是有幫助的,能夠避免過大的延遲峯值。