[備忘] redis 生產環境配置
阿新 • • 發佈:2018-10-31
轉載自:http://blog.chinaunix.net/uid-30111490-id-4819701.html
redis配置詳解
# 預設情況下,redis不是在後臺模式執行的,如果需要在後臺程序執行,把該項的值更改為yes,預設為nodaemonize no
#redis服務以後臺程序執行的時候,Redis預設會把pid寫入/var/run/redis.pid檔案組
pidfile /var/run/redis.pid
# 指定redis監聽埠,預設為6379
port 6379
# 指定redis只接收來自於該IP地址的請求,如果不進行設定,預設將處理所有請求,我們是在生產環境下,所以這是必備項
bind 10.160.29.5
# 設定客戶端連線時的超時時間,單位為秒。當客戶端在這段時間內沒有發出任何指令,那麼關閉該連線
timeout 2
# 指定日誌記錄級別
# Redis總共支援四個級別:debug、verbose、notice、warning,預設為verbose
# debug 記錄很多資訊,用於開發和測試
# varbose 很多精簡的有用資訊,不像debug會記錄那麼多
# notice 普通的verbose,常用於生產環境
# warning 只有非常重要或者嚴重的資訊會記錄到日誌
loglevel verbose
# 可用資料庫數,預設值為16,預設資料庫儲存在DB 0號ID庫中,無特殊需求,建議僅設定一個數據庫 databases 1
databases 16
# 把資料庫存到磁碟上:
# 下面的例子將會進行把資料寫入磁碟的操作:
# 900秒(15分鐘)之後,且至少有1個key(次)變更
# 300秒(5分鐘)之後,且至少有10個key(次)變更
# 60秒之後,且至少有10000個key(次)變更
# 注意:如果不需要寫磁碟,則把所有 "save" 設定註釋掉,即實現全記憶體伺服器。
save 900 1
save 300 10
save 60 10000
# 資料庫的檔名及存放路徑
dbfilename rdbfile.rdb
# 工作目錄
# 本地資料庫會寫到這個目錄下,檔名就是上面的 "dbfilename" 的值。
dir /usr/local/rdbfile
# 主從同步。通過 slaveof 配置來實現Redis例項的備份。
# 當本機為從服務時,設定主服務的IP及埠,在Redis啟動時,它會自動從主服務進行資料同步
slaveof
#當本機為從服務時,設定主服務的連線密碼
# masterauth
# 當一個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
# slave根據指定的時間間隔向伺服器傳送ping請求。
# 時間間隔可以通過 repl_ping_slave_period 來設定。
# 預設10秒
repl-ping-slave-period 5
# 設定最大同時連線客戶端數量,0表示沒有限制,一旦達到這個限制,Redis會關閉所有新連線併發送錯誤達到最大使用者數上限。
maxclients 1024
# 設定最大記憶體,達到最大記憶體設定後,Redis會先嚐試清除已到期或即將到期的Key,當此方法處理後,任到達最大記憶體設定,將無法再進行寫入操作。
maxmemory 10240000000分配10G記憶體
# 記憶體策略:如果達到記憶體限制了,Redis如何刪除key。你可以在下面五個策略裡面選:
# volatile-lru -> 根據LRU演算法生成的過期時間來刪除。
# allkeys-lru -> 根據LRU演算法刪除任何key。
# volatile-random -> 根據過期設定來隨機刪除key。
# allkeys->random -> 無差別隨機刪。
# volatile-ttl -> 根據最近過期時間來刪除(輔以TTL)
# noeviction -> 誰也不刪,直接在寫操作時返回錯誤。
maxmemory-policy noeviction
# 開啟累加模式,因為redis本身同步資料檔案是按上面save條件來同步的,所以有的資料會在一段時間內只存在於記憶體中,這種情況下,當Redis宕機的時候,最新的資料就丟了。
#如果不希望丟掉任何一條資料的話就該用純累加模式:一旦開啟這個模式,Redis會把每次寫入的資料在接收後都寫入 appendonly.aof 檔案。
appendonly yes
# 設定純累加檔名字及儲存路徑,預設:"appendonly.aof"
appendfilename appendonly.aof
# Redis慢查詢日誌可以記錄超過指定時間的查詢。執行時間不包括各種I/O時間。
slowlog-log-slower-than 10000