【轉載】redis.conf文件詳解

轉載地址:http://blog.csdn.net/zhutulang/article/details/51969760html

Redis.conf文件能夠在github上查看,下面是我整理的其中的配置項(版本是3.2)的解析,儘可能全面一些吧。node

參考:一、http://running.iteye.com/blog/2065351mysql

             二、http://chembo.iteye.com/blog/2054021linux

             三、http://www.cnblogs.com/kreo/p/4423362.htmlgit

             四、www.111cn.net/database/276/84771.htmgithub

 

注:REDIS CLUSTER 以後的配置暫時沒有列出來。實在是太多了。redis

一、include算法

解釋:引入其它配置文件。好比說當你有多個server,而有一些配置項是它們公用的,那麼你能夠將這些公用的配置項寫進一個配置文件common.conf裏,而後這些server再include這個配置文件,這些server本身的配置項則分別寫在本身的配置文件裏。sql

示例:include /path/to/common.conf數據庫

 

二、loadmodule

解釋:此配置項還沒有了解。註釋是這樣的:啓動時加載模塊,若是server沒法加載模塊,則此配置會被忽略。可使用多個loadmodule。

示例:loadmodule /path/to/my_module.so

 

三、bind

解釋:默認狀況下,redis 在 server 上全部有效的網絡接口上監聽客戶端鏈接。若是隻想讓它在一個或多個網絡接口上監聽,那你就綁定一個IP或者多個IP。多個ip空格分隔便可。

示例: bind 192.168.1.100 10.0.0.1
             bind 127.0.0.1 ::1

 

四、protected-mode

解釋:當開啓後,禁止公網訪問redis。它啓用的條件有兩個,第一是沒有使用bind,第二是沒有設置訪問密碼。

示例:protected-mode yes

 

五、port

解釋:指定該redis server監聽的端口號。默認是6379,若是指定0則不監聽。

示例:port 6379

 

六、tcp-backlog

解釋:此參數肯定了TCP鏈接中已完成隊列(完成三次握手以後)的長度, 固然此值必須不大於Linux系統定義的/proc/sys/net/core/somaxconn值,默認是511,而Linux的默認參數值是128。當系統併發量大而且客戶端速度緩慢的時候,能夠將這二個參數一塊兒參考設定。

示例:tcp-backlog 511

 

七、unixsocket

解釋:指定 unix socket 的路徑。

示例:unixsocket /tmp/redis.sock

 

八、unixsocketperm

解釋:指定 unix socket file 的權限。

示例:unixsocketperm  755

 

九、timeout

解釋:當客戶端閒置多少秒後關閉鏈接,若是設置爲0表示關閉該功能。

示例:timeout  30

 

十、tcp-keepalive

解釋:單位是秒,表示將週期性的使用SO_KEEPALIVE檢測客戶端是否還處於健康狀態,避免服務器一直阻塞,官方給出的建議值是300S

示例:tcp-keepalive 300

 

十一、daemonize

解釋:是否以守護模式啓動,默認爲no,配置爲yes時以守護模式啓動,這時redis instance會將進程號pid寫入默認文件/var/run/redis.pid。

示例:daemonize yes

 

十二、supervised

解釋:能夠經過upstart和systemd管理Redis守護進程,這個參數是和具體的操做系統相關的。

示例:supervised no

 

1三、pidfile

解釋:配置pid文件路徑。當redis以守護模式啓動時,若是沒有配置pidfile,pidfile默認值是/var/run/redis.pid 。

示例:pidfile /var/run/redis_6379.pid

 

1四、loglevel

解釋:日誌級別。可選項有:debug(記錄大量日誌信息,適用於開發、測試階段);  verbose(較多日誌信息);  notice(適量日誌信息,使用於生產環境);warning(僅有部分重要、關鍵信息纔會被記錄)。

示例:loglevel notice

 

1五、logfile

解釋:日誌文件的位置,當指定爲空字符串時,爲標準輸出,若是redis已守護進程模式運行,那麼日誌將會輸出到  /dev/null 。

示例:logfile ""

 

1六、syslog-enabled

解釋:是否把日誌記錄到系統日誌。(何意?)

示例:syslog-enabled no

 

1七、syslog-ident

解釋:設置系統日誌的id

示例:syslog-ident redis

 

1八、syslog-facility

解釋:指定syslog設備(facility),必須是user或則local0到local7。

示例:syslog-facility local0

 

1九、databases

解釋:設置數據庫的數目。默認的數據庫是DB 0 ,能夠在每一個鏈接上使用select  <dbid> 命令選擇一個不一樣的數據庫,dbid是一個介於0到databases - 1 之間的數值。

示例:databases 16

 

20、save

解釋:保存數據到磁盤。格式是:save <seconds> <changes> ,含義是在 seconds 秒以後至少有 changes個keys 發生改變則保存一次。

示例:save 900 1
            save 300 10
            save 60 10000

 

2一、stop-writes-on-bgsave-error

解釋:默認狀況下,若是 redis 最後一次的後臺保存失敗,redis 將中止接受寫操做,這樣以一種強硬的方式讓用戶知道數據不能正確的持久化到磁盤, 不然就會沒人注意到災難的發生。 若是後臺保存進程從新啓動工做了,redis 也將自動的容許寫操做。然而你要是安裝了靠譜的監控,你可能不但願 redis 這樣作,那你就改爲 no 好了。

示例:stop-writes-on-bgsave-error no

 

2二、rdbcompression

解釋:是否在dump  .rdb數據庫的時候壓縮字符串,默認設置爲yes。若是你想節約一些cpu資源的話,能夠把它設置爲no,這樣的話數據集就可能會比較大。

示例:rdbcompression yes

 

2三、rdbchecksum

解釋:是否CRC64校驗rdb文件,會有必定的性能損失(大概10%)。

示例:rdbchecksum yes

 

2四、dbfilename

解釋:rdb文件的名字。

示例:dbfilename dump.rdb

 

2五、dir

解釋:數據庫存放目錄。必須是一個目錄,aof文件也會保存到該目錄下。

示例:dir ./

 

2六、slaveof

解釋:設置本機爲slave服務。格式:slaveof <masterip> <masterport>。設置master服務的IP地址及端口,在Redis啓動時,它會自動從master進行數據同步。

示例:slaveof  192.168.0.1  6379

 

2七、masterauth

解釋:當master服務設置了密碼保護時,slav服務鏈接master的密碼。

示例:masterauth   123456

 

2八、slave-serve-stale-data

解釋:當一個slave與master失去聯繫時,或者複製正在進行的時候,slave應對請求的行爲:1) 若是爲 yes(默認值) ,slave 仍然會應答客戶端請求,但返回的數據多是過期,或者數據多是空的在第一次同步的時候;2) 若是爲 no ,在你執行除了 info 和 salveof 以外的其餘命令時,slave 都將返回一個 "SYNC with master in progress" 的錯誤。
示例:slave-serve-stale-data yes

 

2九、slave-read-only

解釋:設置slave是不是隻讀的。從2.6版起,slave默認是隻讀的。

示例:slave-read-only  yes

 

30、repl-diskless-sync

解釋:主從數據複製是否使用無硬盤複製功能。

示例:repl-diskless-sync no

 

3一、repl-ping-slave-period

解釋:指定slave按期ping master的週期,默認10秒鐘。

示例:repl-ping-slave-period 10

 

3二、repl-timeout

解釋:設置主庫批量數據傳輸時間或者ping回覆時間間隔,默認值是60秒 。 

示例:repl-timeout 60

 

3三、repl-disable-tcp-nodelay
解釋:指定向slave同步數據時,是否禁用socket的NO_DELAY選 項。若配置爲「yes」,則禁用NO_DELAY,則TCP協議棧會合並小包統一發送,這樣能夠減小主從節點間的包數量並節省帶寬,但會增長數據同步到 slave的時間。若配置爲「no」,代表啓用NO_DELAY,則TCP協議棧不會延遲小包的發送時機,這樣數據同步的延時會減小,但須要更大的帶寬。 一般狀況下,應該配置爲no以下降同步延時,但在主從節點間網絡負載已經很高的狀況下,能夠配置爲yes。

示例:repl-disable-tcp-nodelay no

 

3四、repl-backlog-size

解釋:設置主從複製backlog容量大小。這個 backlog 是一個用來在 slaves 被斷開鏈接時存放 slave 數據的 buffer,因此當一個 slave 想要從新鏈接,一般不但願所有從新同步,只是部分同步就夠了,僅僅傳遞 slave 在斷開鏈接時丟失的這部分數據。這個值越大,salve 能夠斷開鏈接的時間就越長。

示例:repl-backlog-size 1mb

 

3五、repl-backlog-ttl

解釋:配置當master和slave失去聯繫多少秒以後,清空backlog釋放空間。當配置成0時,表示永遠不清空。

示例:repl-backlog-ttl 3600

 

3六、slave-priority

解釋:當 master 不能正常工做的時候,Redis Sentinel 會從 slaves 中選出一個新的 master,這個值越小,就越會被優先選中,可是若是是 0 , 那是意味着這個 slave 不可能被選中。 默認優先級爲 100。

示例:slave-priority 100

 

3七、requirepass

解釋:設置redis鏈接密碼。

示例:requirepass foobared

 

3八、rename-command

解釋:將命令重命名。爲了安全考慮,能夠將某些重要的、危險的命令重命名。當你把某個命令重命名成空字符串的時候就等於取消了這個命令。

示例:rename-command CONFIG b840fc02d524045429941cc15f59e41cb7be6c52

            rename-command CONFIG ""

 

3九、maxclients

解釋:設置客戶端最大併發鏈接數,默認無限制,Redis能夠同時打開的客戶端鏈接數爲Redis進程能夠打開的最大文件描述符數-32(redis server自身會使用一些),若是設置 maxclients 0,表示不做限制。當客戶端鏈接數到達限制時,Redis會關閉新的鏈接並向客戶端返回max number of clients reached錯誤信息。

示例:maxclients 10000

 

40、maxmemory

解釋: 指定Redis最大內存限制,Redis在啓動時會把數據加載到內存中,達到最大內存後,Redis會先嚐試清除已到期或即將到期的Key,當此方法處理 後,仍然到達最大內存設置,將沒法再進行寫入操做,但仍然能夠進行讀取操做。Redis新的vm機制,會把Key存放內存,Value會存放在swap區,格式:maxmemory <bytes> 。

示例:maxmemory 1024000

 

4一、maxmemory-policy

解釋:當內存使用達到最大值時,redis使用的清楚策略。有如下幾種能夠選擇(明明有6種,官方配置文件裏卻說有5種能夠選擇?):

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

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

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

            4)allkeys-random  移除隨機key 

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

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

示例:maxmemory-policy noeviction

 

4二、maxmemory-samples

解釋:LRU 和 minimal TTL 算法都不是精準的算法,可是相對精確的算法(爲了節省內存),隨意你能夠選擇樣本大小進行檢測。redis默認選擇3個樣本進行檢測,你能夠經過maxmemory-samples進行設置 樣本數。

示例:maxmemory-samples 5

 

4三、appendonly

解釋:是否啓用aof持久化方式 。便是否在每次更新操做後進行日誌記錄,默認配置是no,即在採用異步方式把數據寫入到磁盤,若是不開啓,可能會在斷電時致使部分數據丟失。

示例:appendonly no

 

4四、appendfilename

解釋:更新日誌文件名,默認值爲appendonly.aof 。

示例:appendfilename "appendonly.aof"

 

4五、appendfsync

解釋:aof文件刷新的頻率。有三種:

            1)no 依靠OS進行刷新,redis不主動刷新AOF,這樣最快,但安全性就差。

             2) always 每提交一個修改命令都調用fsync刷新到AOF文件,很是很是慢,但也很是安全。

             3) everysec 每秒鐘都調用fsync刷新到AOF文件,很快,但可能會丟失一秒之內的數據。

示例:appendfsync everysec

 

4六、no-appendfsync-on-rewrite

解釋:指定是否在後臺aof文件rewrite期間調用fsync,默認爲no,表示要調用fsync(不管後臺是否有子進程在刷盤)。Redis在後臺寫RDB文件或重寫AOF文件期間會存在大量磁盤IO,此時,在某些linux系統中,調用fsync可能會阻塞。

示例:no-appendfsync-on-rewrite no

 

4七、auto-aof-rewrite-percentage

解釋:當AOF文件增加到必定大小的時候Redis可以調用 BGREWRITEAOF 對日誌文件進行重寫 。當AOF文件大小的增加率大於該配置項時自動開啓重寫。

示例:auto-aof-rewrite-percentage 100

 

4八、auto-aof-rewrite-min-size

 

解釋:當AOF文件增加到必定大小的時候Redis可以調用 BGREWRITEAOF 對日誌文件進行重寫 。當AOF文件大小大於該配置項時自動開啓重寫。

示例:auto-aof-rewrite-min-size 64mb

 

4九、aof-load-truncated

解釋:redis在啓動時能夠加載被截斷的AOF文件,而不須要先執行 redis-check-aof

工具。

 

示例:aof-load-truncated yes

 

50、lua-time-limit

解釋:一個Lua腳本最長的執行時間,單位爲毫秒,若是爲0或負數表示無限執行時間,默認爲5000。

示例:lua-time-limit 5000

相關文章
相關標籤/搜索