Redis設定檔詳解,針對2.6.3--2.6.7,redis2.6.3--2.6.7

來源:互聯網
上載者:User

Redis設定檔詳解,針對2.6.3--2.6.7,redis2.6.3--2.6.7

Redis設定檔詳解,針對2.6.3--2.6.7  

# 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 

# 甚至也可以通過給命令賦值一個Null 字元串來完全禁用這條命令: 

# 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 

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.