redis配置文件詳解(2.6.3--2.6.7)

整理不易:轉帖請註明出處 http://my.oschina.net/jing521/blog/91293

#redis配置文件詳解,針對2.6.3--2.6.7 by http://my.oschina.net/jing521

# Note on units: when memory size is needed, it is possible to specify
# it in the usual form of 1k 5GB 4M and so forth:
#
# 1k => 1000 bytes
# 1kb => 1024 bytes
# 1m => 1000000 bytes
# 1mb => 1024*1024 bytes
# 1g => 1000000000 bytes
# 1gb => 1024*1024*1024 bytes
#
# units are case insensitive so 1GB 1Gb 1gB are all the same.

# Redis默認是不作爲守護進程來運行的。你可以把這個設置爲"yes"讓它作爲守護進程來運行。
# 注意,當作爲守護進程的時候,Redis會把進程ID寫到 /var/run/redis.pid
daemonize yes

# 當以守護進程方式運行的時候,Redis會把進程ID默認寫到 /var/run/redis.pid。你可以在這裏修改路徑。
pidfile /var/run/redis.pid

# 接受連接的特定端口,默認是6379。
# 如果端口設置爲0,Redis就不會監聽TCP套接字
port 6379

# 如果端口設置爲0,Redis就不會監聽TCP套接字
port 6379

# 如果你想的話,你可以綁定單一接口;如果這裏沒單獨設置,那麼所有接口的連接都會被監聽。
#
# bind 127.0.0.1

# 指定用來監聽連接的unxi套接字的路徑。這個沒有默認值,所以如果你不指定的話,Redis就不會通過unix套接字
# unixsocket /tmp/redis.sock
# unixsocketperm 755

#一個客戶端空閒多少秒後關閉連接。(0代表禁用,永不關閉)
timeout 0

# 設置服務器調試等級。
# debug (很多信息,對開發/測試有用)
# verbose (很多精簡的有用信息,但是不像debug等級那麼多)
# notice (適量的信息,基本上是你生產環境中需要的程度)

# warning (只有很重要/嚴重的信息會記錄下來)

loglevel notice

# 指明日誌文件名。也可以使用"stdout"來強制讓Redis把日誌信息寫到標準輸出上。
# 注意:如果Redis以守護進程方式運行,而你設置日誌顯示到標準輸出的話,那麼日誌會發送到 /dev/null
logfile stdout
# 要使用系統日誌記錄器很簡單,只要設置 "syslog-enabled" 爲 "yes" 就可以了。
# 然後根據需要設置其他一些syslog參數就可以了。
# syslog-enabled no

# 指明syslog身份
# syslog-ident redis

# 指明syslog的設備。必須是一個用戶或者是 LOCAL0 ~ LOCAL7 之一。
# syslog-facility local0

#設置數據庫個數。默認數據庫是 DB 0,你可以通過SELECT <dbid> WHERE dbid(0~'databases' - 1)來爲每個鏈接選擇服務器
databases 16

################################ 快照 ########################
                                                              
# 把數據庫存到磁盤上:                                                                                                     
#   save <seconds> <changes>                                  
#                                                             
#   會在指定秒數和數據變化次數之後把數據庫寫到磁盤上。        
#                                                             
#   下面的例子將會進行把數據寫入磁盤的操作:                   
#   900秒(15分鐘)之後,且至少1次變更                        
#   300秒(5分鐘)之後,且至少10次變更                        
#   60秒之後,且至少10000次變更                               
#                                                             
#   注意:你要想不寫磁盤的話就把所有 "save" 設置註釋掉就行了。

#save 900 1
save 300 30
#save 60 10000

#後臺存儲錯誤停止寫。
stop-writes-on-bgsave-error yes

# 當導出到 .rdb 數據庫時是否用LZF壓縮字符串對象。  
# 默認設置爲 "yes",所以幾乎總是生效的。                                                         
# 如果你想節省CPU的話你可以把這個設置爲 "no",但是如果你有可壓縮的key的話,那數據文件就會更大了。
rdbcompression yes

# Since verison 5 of RDB a CRC64 checksum is placed at the end of the file.
# This makes the format more resistant to corruption but there is a performance
# hit to pay (around 10%) when saving and loading RDB files, so you can disable it
# for maximum performances.
#
#存儲和加載rdb文件時校驗。
rdbchecksum yes

# 數據庫的文件名
dbfilename dump.rdb

#  工作目錄
# 數據庫會寫到這個目錄下,文件名就是上面的 "dbfilename" 的值。
# 累加文件也放這裏。
# 注意你這裏指定的必須是目錄,不是文件名。
dir ./

################################# 同步 #################################
#
# 主從同步。通過 slaveof 配置來實現Redis實例的備份。
# 注意,這裏是本地從遠端複製數據。也就是說,本地可以有不同的數據庫文件、綁定不同的IP、監聽不同的端口。
#
# slaveof <masterip> <masterport>
  
# 如果master設置了密碼(通過下面的 "requirepass" 選項來配置),那麼slave在開始同步之前必須進行身份驗證,否則它的同步請求會被拒絕。
#
# masterauth <master-password>
  
# 當一個slave失去和master的連接,或者同步正在進行中,slave的行爲有兩種可能:
#
# 1) 如果 slave-serve-stale-data 設置爲 "yes" (默認值),slave會繼續響應客戶端請求,可能是正常數據,也可能是還沒獲得值的空數據。
# 2) 如果 slave-serve-stale-data 設置爲 "no",slave會回覆"正在從master同步(SYNC with master in progress)"來處理各種請求,除了 INFO 和 SLAVEOF 命令。

slave-serve-stale-data yes

  #如果爲yes,slave實例只讀,如果爲no,slave實例可讀可寫。
slave-read-only yes

# slave根據指定的時間間隔向服務器發送ping請求。
# 時間間隔可以通過 repl_ping_slave_period 來設置。
# 默認10秒。
#
# repl-ping-slave-period 10
  
# 下面的選項設置了大塊數據I/O、向master請求數據和ping響應的過期時間。
# 默認值60秒。
#
# 一個很重要的事情是:確保這個值比 repl-ping-slave-period 大,否則master和slave之間的傳輸過期時間比預想的要短。
# repl-timeout 60

  #如果master不能再正常工作,那麼會在多個slave中,選擇優先值最小的一個slave提升爲master,優先值爲0表示不能提升爲master。
slave-priority 100

################################## 安全 ###################################
  
# 要求客戶端在處理任何命令時都要驗證身份和密碼。
# 這在你信不過來訪者時很有用。
#
# 爲了向後兼容的話,這段應該註釋掉。而且大多數人不需要身份驗證(例如:它們運行在自己的服務器上。)
#
# 警告:因爲Redis太快了,所以居心不良的人可以每秒嘗試150k的密碼來試圖破解密碼。
# 這意味着你需要一個高強度的密碼,否則破解太容易了。
#
# requirepass foobared
  
# 命令重命名
#
# 在共享環境下,可以爲危險命令改變名字。比如,你可以爲 CONFIG 改個其他不太容易猜到的名字,這樣你自己仍然可以使用,而別人卻沒法做壞事了。
#
# 例如:
#
# rename-command CONFIG b840fc02d524045429941cc15f59e41cb7be6c52
#
# 甚至也可以通過給命令賦值一個空字符串來完全禁用這條命令:
#
# rename-command CONFIG ""

################################### 限制 ####################################
  
#
# 設置最多同時連接客戶端數量。
# 默認沒有限制,這個關係到Redis進程能夠打開的文件描述符數量。
# 特殊值"0"表示沒有限制。
# 一旦達到這個限制,Redis會關閉所有新連接併發送錯誤"達到最大用戶數上限(max number of clients reached)"
#
# maxclients 128
  
# 不要用比設置的上限更多的內存。一旦內存使用達到上限,Redis會根據選定的回收策略(參見:maxmemmory-policy)刪除key。
#
# 如果因爲刪除策略問題Redis無法刪除key,或者策略設置爲 "noeviction",Redis會回覆需要更多內存的錯誤信息給命令。
# 例如,SET,LPUSH等等。但是會繼續合理響應只讀命令,比如:GET。
#
# 在使用Redis作爲LRU緩存,或者爲實例設置了硬性內存限制的時候(使用 "noeviction" 策略)的時候,這個選項還是滿有用的。
#
# 警告:當一堆slave連上達到內存上限的實例的時候,響應slave需要的輸出緩存所需內存不計算在使用內存當中。
# 這樣當請求一個刪除掉的key的時候就不會觸發網絡問題/重新同步的事件,然後slave就會收到一堆刪除指令,直到數據庫空了爲止。
#
# 簡而言之,如果你有slave連上一個master的話,那建議你把master內存限制設小點兒,確保有足夠的系統內存用作輸出緩存。
# (如果策略設置爲"noeviction"的話就不無所謂了)
#
# maxmemory <bytes>

#       incr decr rpush lpush rpushx lpushx linsert lset rpoplpush sadd

# 內存策略:如果達到內存限制了,Redis如何刪除key。你可以在下面五個策略裏面選:
#
# volatile-lru -> 根據LRU算法生成的過期時間來刪除。
# allkeys-lru -> 根據LRU算法刪除任何key。
# volatile-random -> 根據過期設置來隨機刪除key。
# allkeys->random -> 無差別隨機刪。
# volatile-ttl -> 根據最近過期時間來刪除(輔以TTL)
# noeviction -> 誰也不刪,直接在寫操作時返回錯誤。
#
# 注意:對所有策略來說,如果Redis找不到合適的可以刪除的key都會在寫操作時返回一個錯誤。
#
#       這裏涉及的命令:set setnx setex append
#       incr decr rpush lpush rpushx lpushx linsert lset rpoplpush sadd
#       sinter sinterstore sunion sunionstore sdiff sdiffstore zadd zincrby
#       zunionstore zinterstore hset hsetnx hmset hincrby incrby decrby
#       getset mset msetnx exec sort
#
# 默認值如下:
#
# maxmemory-policy volatile-lru
  
# LRU和最小TTL算法的實現都不是很精確,但是很接近(爲了省內存),所以你可以用樣例做測試。
# 例如:默認Redis會檢查三個key然後取最舊的那個,你可以通過下面的配置項來設置樣本的個數。
#
# maxmemory-samples 3
  
############################## 純累加模式 ###############################
# 默認情況下,Redis是異步的把數據導出到磁盤上。這種情況下,當Redis掛掉的時候,最新的數據就丟了。
# 如果不希望丟掉任何一條數據的話就該用純累加模式:一旦開啓這個模式,Redis會把每次寫入的數據在接收後都寫入 appendonly.aof 文件。
# 每次啓動時Redis都會把這個文件的數據讀入內存裏。
#
# 注意,異步導出的數據庫文件和純累加文件可以並存(你得把上面所有"save"設置都註釋掉,關掉導出機制)。
# 如果純累加模式開啓了,那麼Redis會在啓動時載入日誌文件而忽略導出的 dump.rdb 文件。
#
# 重要:查看 BGREWRITEAOF 來了解當累加日誌文件太大了之後,怎麼在後臺重新處理這個日誌文件。
  
appendonly no
  
# 純累加文件名字(默認:"appendonly.aof")
# appendfilename appendonly.aof

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