redis配置文件中文版

# Redis配置文件例子.
#
# 注意:爲了能讀取到配置文件,Redis服務必須以配置文件的路徑作爲第一個參數啓動
# ./redis-server /path/to/redis.conf

# 關於單位,當你需要指定內存的大小時,可以使用如下的單位來指定
#
# 1k => 1000 bytes
# 1kb => 1024 bytes
# 1m => 1000000 bytes
# 1mb => 1024*1024 bytes
# 1g => 1000000000 bytes
# 1gb => 1024*1024*1024 bytes
#
# 單位是大小寫不敏感的 所以 1GB 1Gb 1gB 是一樣的

################################## INCLUDES ###################################

# 如果你擁有一個標準的配置模板,並且希望在該模板之上做一些個性化的修改,你可以
# 使用include 指令來引入其他的配置文件。
#
# 注意:"include" 不會被 admin 或者 Redis Sentinel "CONFIG REWRITE" 命令覆蓋。
#(譯者注:"CONFIG REWRITE" 是redis 2.8 引入的新命令,用來重寫配置)
# 由於redis以最終的配置作爲實際配置,因此我們希望你將include命令放置在配置文件的最前面
# 以防配置被覆蓋
# 如果你打算使用另外的 conf文件來覆蓋當前文件的配置,那麼最好將include指令放置到該文件的末尾
#
# 即最後生效原則,最後被解析的配置將作爲最後的配置
#
# include /path/to/local.conf
# include /path/to/other.conf

################################## NETWORK #####################################

# 默認情況下redis會在所有的可用網絡接口中進行監聽,如果你想讓redis在指定的網絡接口中
# 監聽,那麼可以使用bind 命令來指定redis的監聽接口
#
# 例如:
#
# bind 192.168.1.100 10.0.0.1
# bind 127.0.0.1 ::1
#
# ~~~ 警告 ~~~ 如果允許所有的網絡接口訪問Redis,這樣做是很危險的,如果你只是需要本機訪問 
# 可以指定特定的127.0.0.1,如果需要外網訪問,請配置防火牆策略
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
bind 127.0.0.1

# 是否開啓保護模式,默認開啓。要是配置裏沒有指定bind和密碼。
# 開啓該參數後,redis只會本地進行訪問,拒絕外部訪問。
# 要是開啓了密碼和bind,可以開啓。否則最好關閉,設置爲no。
protected-mode yes

# 在指定的端口上進行監聽,默認是 6379
# 如果端口設置爲0,那麼redis就不會在TCP socket上進行監聽
port 6379

# TCP listen() backlog.
#
# 在一個併發量高的環境中,你需要指定一個比較大的backlog值來避免慢連接的情況
# 注意,linux內核會默認 使用/proc/sys/net/core/somaxconn 的值來削減 backlog的實際值,
# 因此你需要確保提升 somaxconn 和 tcp_max_syn_backlog 這兩個值來確保此處的backlog生效
tcp-backlog 511

# Unix socket.
#
# 指定unix sock的路徑來進行連接監聽,默認是不指定,因此redis不會在unix socket上進行監聽
#
# unixsocket /tmp/redis.sock
# unixsocketperm 700

# 關閉掉空閒N秒的連接(0則是不處理空閒連接)
timeout 0

# TCP keepalive.
#
# 如果該值不爲0,將使用 SO_KEEPALIVE 這一默認的做法來向客戶端連接發送TCP ACKs 
#
# 這樣的好處有以下兩個原因
# 1)檢測已經死亡的對端(譯者注:TCP的關閉會存在無法完成4次握手的情況,如斷電,斷網,數據丟失等等)
# 2)保持連接在網絡環境中的存活
#
tcp-keepalive 0

################################# GENERAL #####################################

# redis默認不是以一個守護進程來運行的,使用 yes,可以讓redis作爲守護進程來運行
# 注意:當redis作爲守護進程的時候 /var/run/redis.pid 作爲 pid 文件
daemonize yes

# 3.2新增的參數,不懂
supervised no

# 當redis以守護進程運行時,將會使用/var/run/redis.pid作爲 pid文件的位置
pidfile /var/run/redis.pid

# 指定日誌的記錄級別的
# 可以是如下的幾個值之一
# debug (儘可能多的日誌信息,用於開發和測試之中)
# verbose (少但是有用的信息, 沒有debug級別那麼混亂)
# notice (適量的信息,用於生產環境)
# warning (只有非常重要和關鍵的信息會被記錄)
loglevel notice

# 指定日誌文件的位置. 爲空時將輸出到標準輸出設備
# 如果你在demo模式下使用標準輸出的日誌,日誌將會輸出到 /dev/null
logfile redis.log

# 當設置 'syslog-enabled'爲 yes時, 允許記錄日誌到系統日誌中。
# 以及你可以使用更多的日誌參數來滿足你的要求
# syslog-enabled no

# 指定在系統日誌中的身份
# syslog-ident redis

# 指定系統日誌的能力. 必須是 LOCAL0 到 LOCAL7 之間(閉區間).
# syslog-facility local0

# 設置數據庫的數量. 默認的數據庫是DB 0 使得你可以在每一個連接的基礎之上使用 
# SELECT <dbid> 來指定另外的數據庫,但是這個值必須在 0到 'database'-1之間
databases 16

################################ SNAPSHOTTING  ################################
#
# 保存 DB 到硬盤:
#
# save <seconds> <changes>
#
# 將會在<seconds> 和 <changes>兩個值同時滿足時,將DB數據保存到硬盤中
# 其中<seconds> 每多少秒,<changes>是改變的key的數量
#
# 在以下的例子中,將會存在如下的行爲
# 當存在最少一個key 變更時,900秒(15分鐘)後保存到硬盤
# 當存在最少10個key變更時,300秒後保存到硬盤
# 當存在最少1000個key變更時,60秒後保存到硬盤
#
# 提示: 你可以禁用如下的所有 save 行
#
# 你可以刪除所有的save然後設置成如下這樣的情況
#
# save ""

save 900 1
save 300 10
save 60 10000

# 作爲默認,redis會在RDB快照開啓和最近後臺保存失敗的時候停止接受寫入(最少一個保存點)
# 這會使得用戶察覺(通常比較困難)到數據不會保持在硬盤上的正確性,否則很難發現
# 這些災難會發生,如果後臺保存程序再次開始工作,reidis會再次自動允許寫入
# 然而如果對redis服務器設置了合理持續的監控,那麼你可以關閉掉這個選項。
# 這會導致redis將繼續進行工作,無論硬盤,權限或者其他的是否有問題
stop-writes-on-bgsave-error no

# 是否在dump到 rdb 數據庫的時候使用LZF來壓縮字符串
# 默認是 yes,因爲這是一個優良的做法
# 如果你不想耗費你的CPU處理能力,你可以設置爲 no,但是這會導致你的數據會很大
rdbcompression yes

# 從RDB的版本5開始,CRC64校驗值會寫入到文件的末尾
# 這會使得格式化過程中,使得文件的完整性更有保障,
# 但是這會在保存和加載的時候損失不少的性能(大概在10%)
# 你可以關閉這個功能來獲得最高的性能
#
# RDB文件會在校驗功能關閉的時候,使用0來作爲校驗值,這將告訴加載代碼來跳過校驗步驟
rdbchecksum yes

# DB的文件名稱
dbfilename dump.rdb

# 工作目錄.
#
# DB將會使用上述 'dbfilename'指定的文件名寫入到該目錄中

# 追加的文件也會在該目錄中創建

# 注意,你應該在這裏輸入的是一個目錄而不是一個文件名
dir ./

################################# REPLICATION #################################

# 主從複製。使用 slaveof 命令來 指導redis從另一個redis服務的拷貝中來創建一個實例
#
# 注意:這個配置是主從結構的從(主從結構的從,怎麼那麼拗口呢)redis的本地配置
#
# 如下例子,這個配置指導 slave (從redis) 
# 通過另一個redis的實例的ip和端口號來獲取DB數據
#
# slaveof <masterip> <masterport>

# 如果主服務器開啓了密碼保護(使用下面的"requirepass"配置)
# 這個配置就是告訴從服務在發起向主服務器的異步複製的請求之前使用如下的密碼進行認證,
# 否則主服務器會拒絕這個請求
#
# masterauth <master-password>

# 如果從服務器失去了和主服務器之間的連接,或者當複製仍然處於處理狀態的時候
# 從服務器做出如下的兩個行爲
#
# 1)如果 slave-serve-stale-data 被設置爲 yes(默認值),從服務器將會持續
# 回覆來自客戶端的請求,可能會回覆已經過期的數據,
# 或者返回空的數據,當從服務器第一次異步請求數據時。
#
# 2)如果 slave-serve-stale-data 被設置爲 no ,
# 從服務器就會返回"SYNC with master in progress"
# 這個錯誤,來應答所有命令除了 INFO 和 SLAVEOF
#
slave-serve-stale-data yes

# 你可以配置一個從服務器的實例是否接受寫請求,
# 從服務器在存儲一些短暫的數據的的時候,接收寫請求是一件非常正確的事情
# (因爲數據在向主服務器同步之後非常容易擦除)但是會因爲配置不正確而導致一些問題
#
# 從redis 2.6開始默認從服務器是隻讀的服務器
#
# 提示:只讀的從服務器並不是設計用來公開給不受信任的互聯網客戶端的,它
# 僅僅是一個用來防止對實例進行誤操作的保護層。只讀從服務器默認用來輸出管理命令
# 例如 CONFIG, DEBUG 和其他。如果你想限制它的規模,你可以使用'rename-command'來
# 提高它的安全性,使得她作爲一個影子來執行管理或者危險的命令
slave-read-only yes

# 是否使用socket方式複製數據。目前redis複製提供兩種方式,disk和socket。
# 如果新的slave連上來或者重連的slave無法部分同步,
# 就會執行全量同步,master會生成rdb文件。
# 有2種方式:disk方式是master創建一個新的進程把rdb文件保存到磁盤,
# 再把磁盤上的rdb文件傳遞給slave。socket是master創建一個新的進程,
# 直接把rdb文件以socket的方式發給slave。disk方式的時候,當一個rdb保存的過程中,
# 多個slave都能共享這個rdb文件。socket的方式就的一個個slave順序複製。
# 在磁盤速度緩慢,網速快的情況下推薦用socket方式。
repl-diskless-sync no

# diskless複製的延遲時間,防止設置爲0。一旦複製開始,
# 節點不會再接收新slave的複製請求直到下一個rdb傳輸。
# 所以最好等待一段時間,等更多的slave連上來。
repl-diskless-sync-delay 5

# slave根據指定的時間間隔向服務器發送ping請求。
# 時間間隔可以通過 repl_ping_slave_period 來設置,默認10秒。

# repl-ping-slave-period 10

# 複製連接超時時間。master和slave都有超時時間的設置。
# master檢測到slave上次發送的時間超過repl-timeout,即認爲slave離線,清除該slave信息。
# slave檢測到上次和master交互的時間超過repl-timeout,則認爲master離線。
# 需要注意的是repl-timeout需要設置一個比repl-ping-slave-period更大的值,
# 不然會經常檢測到超時。
#
# repl-timeout 60

# 是否禁止複製tcp鏈接的tcp nodelay參數,可傳遞yes或者no。默認是no,即使用tcp nodelay。
# 如果master設置了yes來禁止tcp nodelay設置,在把數據複製給slave的時候,
# 會減少包的數量和更小的網絡帶寬。但是這也可能帶來數據的延遲。默認我們推薦更小的延遲,
# 但是在數據量傳輸很大的場景下,建議選擇yes。
repl-disable-tcp-nodelay no

# 複製緩衝區大小,這是一個環形複製緩衝區,用來保存最新複製的命令。
# 這樣在slave離線的時候,不需要完全複製master的數據,如果可以執行部分同步,
# 只需要把緩衝區的部分數據複製給slave,就能恢復正常複製狀態。緩衝區的大小越大,
# slave離線的時間可以更長,複製緩衝區只有在有slave連接的時候才分配內存。
# 沒有slave的一段時間,內存會被釋放出來,默認1m。
#
# repl-backlog-size 1mb

# master沒有slave一段時間會釋放複製緩衝區的內存,
# repl-backlog-ttl用來設置該時間長度。單位爲秒。
#
# repl-backlog-ttl 3600

# 當master不可用,Sentinel會根據slave的優先級選舉一個master。
# 最低的優先級的slave,當選master。而配置成0,永遠不會被選舉。
slave-priority 100

# redis提供了可以讓master停止寫入的方式,如果配置了min-slaves-to-write,
# 健康的slave的個數小於N,mater就禁止寫入。
# master最少得有多少個健康的slave存活才能執行寫命令。
# 這個配置雖然不能保證N個slave都一定能接收到master的寫操作,
# 但是能避免沒有足夠健康的slave的時候,master不能寫入來避免數據丟失。
# 設置爲0是關閉該功能。
#
# min-slaves-to-write 3

# 延遲小於min-slaves-max-lag秒的slave才認爲是健康的slave。
# min-slaves-max-lag 10
#
# 設置1或另一個設置爲0禁用這個特性。
# min-slaves-max-lag is set to 10.

################################## SECURITY ###################################

# requirepass配置可以讓用戶使用AUTH命令來認證密碼,才能使用其他命令。
# 這讓redis可以使用在不受信任的網絡中。爲了保持向後的兼容性,可以註釋該命令,
# 因爲大部分用戶也不需要認證。使用requirepass的時候需要注意,因爲redis太快了,
# 每秒可以認證15w次密碼,簡單的密碼很容易被攻破,所以最好使用一個更復雜的密碼。
#
# requirepass 123456

# Command renaming.
#
# 把危險的命令給修改成其他名稱。比如CONFIG命令可以重命名爲一個很難被猜到的命令,
# 這樣用戶不能使用,而內部工具還能接着使用。
# 例如

# rename-command CONFIG b840fc02d524045429941cc15f59e41cb7be6c52
#
# 設置成一個空的值,可以禁止一個命令
# rename-command CONFIG ""

################################### LIMITS ####################################

# 設置能連上redis的最大客戶端連接數量。默認是10000個客戶端連接。
# 由於redis不區分連接是客戶端連接還是內部打開文件或者和slave連接等,
# 所以maxclients最小建議設置到32。如果超過了maxclients,
# redis會給新的連接發送’max number of clients reached’,並關閉連接。
#
# maxclients 10000

# redis配置的最大內存容量。當內存滿了,需要配合maxmemory-policy策略進行處理。
# 注意slave的輸出緩衝區是不計算在maxmemory內的。所以爲了防止主機內存使用完,
# 建議設置的maxmemory需要更小一些。
#
# maxmemory <bytes>

# 內存容量超過maxmemory後的處理策略。
#     volatile-lru:利用LRU算法移除設置過過期時間的key。
#     volatile-random:隨機移除設置過過期時間的key。
#     volatile-ttl:移除即將過期的key,根據最近過期時間來刪除(輔以TTL)
#     allkeys-lru:利用LRU算法移除任何key。
#     allkeys-random:隨機移除任何key。
#     noeviction:不移除任何key,只是返回一個寫錯誤。
# 上面的這些驅逐策略,如果redis沒有合適的key驅逐,對於寫命令,還是會返回錯誤。
# redis將不再接收寫請求,只接收get請求。寫命令包括:set setnx
#
# maxmemory-policy noeviction

# lru檢測的樣本數。使用lru或者ttl淘汰算法,從需要淘汰的列表中隨機選擇sample個key,
# 選出閒置時間最長的key移除。
#
# maxmemory-samples 5

############################## APPEND ONLY MODE ###############################

# 默認redis使用的是rdb方式持久化,這種方式在許多應用中已經足夠用了。
# 但是redis如果中途宕機,會導致可能有幾分鐘的數據丟失,根據save來策略進行持久化,
# Append Only File是另一種持久化方式,可以提供更好的持久化特性。
# Redis會把每次寫入的數據在接收後都寫入 appendonly.aof 文件,
# 每次啓動時Redis都會先把這個文件的數據讀入內存裏,先忽略RDB文件。
appendonly yes

# aof文件名(default: "appendonly.aof")
appendfilename "appendonly.aof"

# aof持久化策略的配置
# no 表示不執行fsync,由操作系統保證數據同步到磁盤,速度最快。
# always 表示每次寫入都執行fsync,以保證數據同步到磁盤。
# everysec 表示每秒執行一次fsync,可能會導致丟失這1s數據。
appendfsync everysec

# 在aof重寫或者寫入rdb文件的時候,會執行大量IO,此時對於everysec和always的aof模式來說,
# 執行fsync會造成阻塞過長時間,no-appendfsync-on-rewrite字段設置爲默認設置爲no。
# 如果對延遲要求很高的應用,這個字段可以設置爲yes,否則還是設置爲no,
# 這樣對持久化特性來說這是更安全的選擇。設置爲yes表示rewrite期間對新寫操作不fsync,
# 暫時存在內存中,等rewrite完成後再寫入,默認爲no,建議yes。
# Linux的默認fsync策略是30秒。可能丟失30秒數據。
no-appendfsync-on-rewrite no

# aof自動重寫配置。當目前aof文件大小超過上一次重寫的aof文件大小的百分之多少進行重寫,
# 即當aof文件增長到一定大小的時候Redis能夠調用bgrewriteaof對日誌文件進行重寫。
# 當前AOF文件大小是上次日誌重寫得到AOF文件大小的二倍(設置爲100)時,
# 自動啓動新的日誌重寫過程。
auto-aof-rewrite-percentage 100
# 設置允許重寫的最小aof文件大小,避免了達到約定百分比但尺寸仍然很小的情況還要重寫
auto-aof-rewrite-min-size 64mb

# aof文件可能在尾部是不完整的,當redis啓動的時候,aof文件的數據被載入內存。
# 重啓可能發生在redis所在的主機操作系統宕機後,
# 尤其在ext4文件系統沒有加上data=ordered選項(redis宕機或者異常終止不會造成尾部不完整現象。)
# 出現這種現象,可以選擇讓redis退出,或者導入儘可能多的數據。如果選擇的是yes,
# 當截斷的aof文件被導入的時候,會自動發佈一個log給客戶端然後load。
# 如果是no,用戶必須手動redis-check-aof修復AOF文件纔可以。
aof-load-truncated yes

################################ LUA SCRIPTING  ###############################

# Lua腳本的最大超時時間.
#
# 如果達到最大時間限制(毫秒),redis會記個log,然後返回error。
# 當一個腳本超過了最大時限。只有SCRIPT KILL和SHUTDOWN NOSAVE可以用。
# 第一個可以殺沒有調write命令的東西。要是已經調用了write,只能用第二個命令殺。
lua-time-limit 5000

################################ REDIS CLUSTER  ###############################
#
# 集羣開關,默認是不開啓集羣模式。
#
# cluster-enabled yes

# 集羣配置文件的名稱,每個節點都有一個集羣相關的配置文件,持久化保存集羣的信息。
# 這個文件並不需要手動配置,這個配置文件有Redis生成並更新,
# 每個Redis集羣節點需要一個單獨的配置文件,請確保與實例運行的系統中配置文件名稱不衝突
#
# cluster-config-file nodes-6379.conf

# 節點互連超時的閥值。集羣節點超時毫秒數
#
# cluster-node-timeout 15000

# 在進行故障轉移的時候,全部slave都會請求申請爲master,
# 但是有些slave可能與master斷開連接一段時間了,導致數據過於陳舊,
# 這樣的slave不應該被提升爲master。該參數就是用來判斷slave節點與master斷線的時間是否過長。
# 判斷方法是:
# 比較slave斷開連接的時間和(node-timeout * slave-validity-factor) + repl-ping-slave-period
# 如果節點超時時間爲三十秒, 並且slave-validity-factor爲10,
# 假設默認的repl-ping-slave-period是10秒,即如果超過310秒slave將不會嘗試進行故障轉移
#
# cluster-slave-validity-factor 10

# master的slave數量大於該值,slave才能遷移到其他孤立master上,
# 如這個參數若被設爲2,那麼只有當一個主節點擁有2 個可工作的從節點時,它的一個從節點會嘗試遷移。
#
# cluster-migration-barrier 1

# 默認情況下,集羣全部的slot有節點負責,集羣狀態才爲ok,才能提供服務。
# 設置爲no,可以在slot沒有全部分配的時候提供服務。不建議打開該配置,這樣會造成分區的時候,
# 小分區的master一直在接受寫請求,而造成很長時間數據不一致。
#
# cluster-require-full-coverage yes

################################## SLOW LOG ###################################

# slog log是用來記錄redis運行中執行比較慢的命令耗時。
# 當命令的執行超過了指定時間,就記錄在slow log中,slog log保存在內存中,所以沒有IO操作。
# 執行時間比slowlog-log-slower-than大的請求記錄到slowlog裏面,
# 單位是微秒,所以1000000就是1秒。
# 注意,負數時間會禁用慢查詢日誌,而0則會強制記錄所有命令。
slowlog-log-slower-than 10000

# 慢查詢日誌長度。當一個新的命令被寫進日誌的時候,最老的那個記錄會被刪掉。
# 這個長度沒有限制。只要有足夠的內存就行。你可以通過 SLOWLOG RESET 來釋放內存。
slowlog-max-len 128

################################ LATENCY MONITOR ##############################

# 延遲監控功能是用來監控redis中執行比較緩慢的一些操作,
# 用LATENCY打印redis實例在跑命令時的耗時圖表。只記錄大於等於下邊設置的值的操作。
# 0的話,就是關閉監視。默認延遲監控功能是關閉的,
# 如果你需要打開,也可以通過CONFIG SET命令動態設置。
latency-monitor-threshold 0

############################# EVENT NOTIFICATION ##############################

# 鍵空間通知使得客戶端可以通過訂閱頻道或模式,來接收那些以某種方式改動了 Redis 數據集的事件。
# 因爲開啓鍵空間通知功能需要消耗一些 CPU ,所以在默認配置下,該功能處於關閉狀態。
# notify-keyspace-events 的參數可以是以下字符的任意組合,
# 它指定了服務器該發送哪些類型的通知:
# K 鍵空間通知,所有通知以 __keyspace@__ 爲前綴
# E 鍵事件通知,所有通知以 __keyevent@__ 爲前綴
# g DEL 、 EXPIRE 、 RENAME 等類型無關的通用命令的通知
# $ 字符串命令的通知
# l 列表命令的通知
# s 集合命令的通知
# h 哈希命令的通知
# z 有序集合命令的通知
# x 過期事件:每當有過期鍵被刪除時發送
# e 驅逐(evict)事件:每當有鍵因爲 maxmemory 政策而被刪除時發送
# A 參數 g$lshzxe 的別名
# 輸入的參數中至少要有一個 K 或者 E,否則的話,不管其餘的參數是什麼,都不會有任何 通知被分發。
notify-keyspace-events ""

############################### ADVANCED CONFIG ###############################

# 數據量小於等於hash-max-ziplist-entries的用ziplist,
# 大於hash-max-ziplist-entries用hash
# value大小小於等於hash-max-ziplist-value的用ziplist,
# 大於hash-max-ziplist-value用hash。
hash-max-ziplist-entries 512
hash-max-ziplist-value 64

# Lists are also encoded in a special way to save a lot of space.
# The number of entries allowed per internal list node can be specified
# as a fixed maximum size or a maximum number of elements.
# For a fixed maximum size, use -5 through -1, meaning:
# -5: max size: 64 Kb  <-- not recommended for normal workloads
# -4: max size: 32 Kb  <-- not recommended
# -3: max size: 16 Kb  <-- probably not recommended
# -2: max size: 8 Kb   <-- good
# -1: max size: 4 Kb   <-- good
# Positive numbers mean store up to _exactly_ that number of elements
# per list node.
# The highest performing option is usually -2 (8 Kb size) or -1 (4 Kb size),
# but if your use case is unique, adjust the settings as necessary.
list-max-ziplist-size -2

# Lists may also be compressed.
# Compress depth is the number of quicklist ziplist nodes from *each* side of
# the list to *exclude* from compression.  The head and tail of the list
# are always uncompressed for fast push/pop operations.  Settings are:
# 0: disable all list compression
# 1: depth 1 means "don't start compressing until after 1 node into the list,
#    going from either the head or tail"
#    So: [head]->node->node->...->node->[tail]
#    [head], [tail] will always be uncompressed; inner nodes will compress.
# 2: [head]->[next]->node->node->...->node->[prev]->[tail]
#    2 here means: don't compress head or head->next or tail->prev or tail,
#    but compress all nodes between them.
# 3: [head]->[next]->[next]->node->node->...->node->[prev]->[prev]->[tail]
# etc.
list-compress-depth 0

# 數據量小於等於set-max-intset-entries用iniset,
# 大於set-max-intset-entries用set。
set-max-intset-entries 512

# 數據量小於等於zset-max-ziplist-entries用ziplist,
# 大於zset-max-ziplist-entries用zset
zset-max-ziplist-entries 128
zset-max-ziplist-value 64

# value大小小於等於hll-sparse-max-bytes使用稀疏數據結構(sparse),
# 大於hll-sparse-max-bytes使用稠密的數據結構(dense)。
# 一個比16000大的value是幾乎沒用的,建議的value大概爲3000。
# 如果對CPU要求不高,對空間要求較高的,建議設置到10000左右。
hll-sparse-max-bytes 3000

# Redis將在每100毫秒時使用1毫秒的CPU時間來對redis的hash表進行重新hash,可以降低內存的使用。
# 當你的使用場景中,有非常嚴格的實時性需要,不能夠接受Redis時不時的對請求有2毫秒的延遲的話,
# 把這項配置爲no。如果沒有這麼嚴格的實時性要求,可以設置爲yes,以便能夠儘可能快的釋放內存。
activerehashing yes

# 對客戶端輸出緩衝進行限制可以強迫那些不從服務器讀取數據的客戶端斷開連接,
# 用來強制關閉傳輸緩慢的客戶端。
# 對於normal client,第一個0表示取消hard limit,
# 第二個0和第三個0表示取消soft limit,normal client默認取消限制,因爲如果沒有尋問,他們是不會接收數據的。
client-output-buffer-limit normal 0 0 0

# 對於slave client和MONITER client,如果client-output-buffer一旦超過256mb,
# 又或者超過64mb持續60秒,那麼服務器就會立即斷開客戶端連接。
client-output-buffer-limit slave 256mb 64mb 60

# 對於pubsub client,如果client-output-buffer一旦超過32mb,
# 又或者超過8mb持續60秒,那麼服務器就會立即斷開客戶端連接。
client-output-buffer-limit pubsub 32mb 8mb 60

# redis執行任務的頻率爲1s除以hz。
hz 10

# 在aof重寫的時候,如果打開了aof-rewrite-incremental-fsync開關,
# 系統會每32MB執行一次fsync。這對於把文件寫入磁盤是有幫助的,可以避免過大的延遲峯值。
aof-rewrite-incremental-fsync yes

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