# redis 配置文件示例
# 當你須要爲某個配置項指定內存大小的時候,必需要帶上單位,
# 一般的格式就是 1k 5gb 4m 等醬紫:
#
# 1k => 1000 bytes
# 1kb => 1024 bytes
# 1m => 1000000 bytes
# 1mb => 1024*1024 bytes
# 1g => 1000000000 bytes
# 1gb => 1024*1024*1024 bytes
#
# 單位是不區分大小寫的,你寫 1K 5GB 4M 也行
################################## INCLUDES ###################################
# 假如說你有一個可用於全部的 redis server 的標準配置模板,
# 但針對某些 server 又須要一些個性化的設置,
# 你可使用 include 來包含一些其餘的配置文件,這對你來講是很是有用的。
#
# 可是要注意哦,include 是不能被 config rewrite 命令改寫的
# 因爲 redis 老是以最後的加工線做爲一個配置指令值,因此你最好是把 include 放在這個文件的最前面,
# 以免在運行時覆蓋配置的改變,相反,你就把它放在後面(外國人真囉嗦)。
#
# include /path/to/local.conf
# include /path/to/other.conf
################################ 經常使用 #####################################
# 默認狀況下 redis 不是做爲守護進程運行的,若是你想讓它在後臺運行,你就把它改爲 yes。
# 當redis做爲守護進程運行的時候,它會寫一個 pid 到 /var/run/redis.pid 文件裏面。
daemonize no
# 當redis做爲守護進程運行的時候,它會把 pid 默認寫到 /var/run/redis.pid 文件裏面,
# 可是你能夠在這裏本身制定它的文件位置。
pidfile /var/run/redis.pid
# 監聽端口號,默認爲 6379,若是你設爲 0 ,redis 將不在 socket 上監放任何客戶端鏈接。
port 6379
# TCP 監聽的最大容納數量
#
# 在高併發的環境下,你須要把這個值調高以免客戶端鏈接緩慢的問題。
# Linux 內核會一言不發的把這個值縮小成 /proc/sys/net/core/somaxconn 對應的值,
# 因此你要修改這兩個值才能達到你的預期。
tcp-backlog 511
# 默認狀況下,redis 在 server 上全部有效的網絡接口上監聽客戶端鏈接。
# 你若是隻想讓它在一個網絡接口上監聽,那你就綁定一個IP或者多個IP。
#
# 示例,多個IP用空格隔開:
#
# bind 192.168.1.100 10.0.0.1
# bind 127.0.0.1
# 指定 unix socket 的路徑。
#
# unixsocket /tmp/redis.sock
# unixsocketperm 755
# 指定在一個 client 空閒多少秒以後關閉鏈接(0 就是無論它)
timeout 0
# tcp 心跳包。
#
# 若是設置爲非零,則在與客戶端缺少通信的時候使用 SO_KEEPALIVE 發送 tcp acks 給客戶端。
# 這個之全部有用,主要由兩個緣由:
#
# 1) 防止死的 peers
# 2) Take the connection alive from the point of view of network
# equipment in the middle.
#
# On Linux, the specified value (in seconds) is the period used to send ACKs.
# Note that to close the connection the double of the time is needed.
# On other kernels the period depends on the kernel configuration.
#
# A reasonable value for this option is 60 seconds.
# 推薦一個合理的值就是60秒
tcp-keepalive 0
# 定義日誌級別。
# 能夠是下面的這些值:
# debug (適用於開發或測試階段)
# verbose (many rarely useful info, but not a mess like the debug level)
# notice (適用於生產環境)
# warning (僅僅一些重要的消息被記錄)
loglevel notice
# 指定日誌文件的位置
logfile ""
# 要想把日誌記錄到系統日誌,就把它改爲 yes,
# 也能夠可選擇性的更新其餘的syslog 參數以達到你的要求
# syslog-enabled no
# 設置 syslog 的 identity。
# syslog-ident redis
# 設置 syslog 的 facility,必須是 USER 或者是 LOCAL0-LOCAL7 之間的值。
# syslog-facility local0
# 設置數據庫的數目。
# 默認數據庫是 DB 0,你能夠在每一個鏈接上使用 select <dbid> 命令選擇一個不一樣的數據庫,
# 可是 dbid 必須是一個介於 0 到 databasees - 1 之間的值
databases 16
################################ 快照 ################################
#
# 存 DB 到磁盤:
#
# 格式:save <間隔時間(秒)> <寫入次數>
#
# 根據給定的時間間隔和寫入次數將數據保存到磁盤
#
# 下面的例子的意思是:
# 900 秒內若是至少有 1 個 key 的值變化,則保存
# 300 秒內若是至少有 10 個 key 的值變化,則保存
# 60 秒內若是至少有 10000 個 key 的值變化,則保存
#
# 注意:你能夠註釋掉全部的 save 行來停用保存功能。
# 也能夠直接一個空字符串來實現停用:
# save ""
save 900 1
save 300 10
save 60 10000
# 默認狀況下,若是 redis 最後一次的後臺保存失敗,redis 將中止接受寫操做,
# 這樣以一種強硬的方式讓用戶知道數據不能正確的持久化到磁盤,
# 不然就會沒人注意到災難的發生。
#
# 若是後臺保存進程從新啓動工做了,redis 也將自動的容許寫操做。
#
# 然而你要是安裝了靠譜的監控,你可能不但願 redis 這樣作,那你就改爲 no 好了。
stop-writes-on-bgsave-error yes
# 是否在 dump .rdb 數據庫的時候使用 LZF 壓縮字符串
# 默認都設爲 yes
# 若是你但願保存子進程節省點 cpu ,你就設置它爲 no ,
# 不過這個數據集可能就會比較大
rdbcompression yes
# 是否校驗rdb文件
rdbchecksum yes
# 設置 dump 的文件位置
dbfilename dump.rdb
# 工做目錄
# 例如上面的 dbfilename 只指定了文件名,
# 可是它會寫入到這個目錄下。這個配置項必定是個目錄,而不能是文件名。
dir ./redis