您可以根據業務情境對Tair (Redis OSS-compatible)執行個體的參數進行調優與自訂配置,已提升執行個體的效能與安全性。不同的引擎版本和架構支援的參數有所區別,本文為您介紹各參數的詳細說明。
注意事項
若設定參數時報錯
Parameter is not supported for current version
,請升級小版本後重試,具體操作請參見升級小版本與代理版本。部分參數在提交修改後會自動重啟執行個體(重啟過程中執行個體會發生秒級閃斷)。在設定參數時,您需要關注目標參數的重啟生效列,更多資訊,請參見設定參數。
本文僅包含Redis開源版執行個體的參數,關於Tair(企業版)執行個體的參數(包含記憶體型、持久記憶體型和磁碟型)請參見Tair企業版配置參數列表。
支援的參數及說明
為便於閱讀和內容表達,本文的表格約定使用下述注釋:
✔️表示在該大版本或架構下,支援該參數。
❌表示在該大版本或架構下,不支援該參數。
參數 | 說明 | 執行個體的大版本與架構 | ||||
7.0版本 | 6.0版本 | 5.0版本 | 4.0版本 | 2.8版本 | ||
#no_loose_check-whitelist-always | 開啟專用網路免密後,是否檢查用戶端的IP在執行個體白名單中。可選值:
說明 僅經典版執行個體支援設定該參數。 | ❌ | ❌ | 標準️️✔️ 叢集✔️ 讀寫分離✔️ | 標準️️✔️ 叢集✔️ 讀寫分離✔️ | ❌ |
#no_loose_disabled-commands | 設定禁用命令,可根據業務需求禁用某些高危命令或高時間複雜度的命令,例如FLUSHALL、FLUSHDB、KEYS、HGETALL、EVAL、EVALSHA、SCRIPT等。 說明
| 標準️️✔️ 叢集✔️ 讀寫分離✔️ | 標準️️✔️ 叢集✔️ 讀寫分離✔️ | 標準️️✔️ 叢集✔️ 讀寫分離✔️ | 標準️️✔️ 叢集✔️ 讀寫分離✔️ | 標準️️✔️ 叢集✔️ 讀寫分離✔️ |
sentinel_compat_enable | 在叢集架構代理模式或讀寫分離架構,開啟或關閉哨兵(Sentinel)相容模式,可選值:
| 標準️️❌ 叢集✔️ 讀寫分離✔️ | 標準️️❌ 叢集✔️ 讀寫分離✔️ | 標準️️❌ 叢集✔️ 讀寫分離✔️ | 標準️️❌ 叢集✔️ 讀寫分離✔️ | ❌ |
#no_loose_sentinel-enabled | 在標準架構或叢集架構直連模式,開啟或關閉哨兵(Sentinel)相容模式,可選值:
| 標準️️✔️ 叢集✔️ 讀寫分離❌ | 標準️️✔️ 叢集✔️ 讀寫分離❌ | 標準️️✔️ 叢集✔️ 讀寫分離❌ | 標準️️✔️ 叢集✔️ 讀寫分離❌ | ❌ |
#no_loose_sentinel-password-free-access | 開啟哨兵模式時,是否允許免密執行Sentinel相關命令,可選值:
| 標準️️✔️ 叢集✔️ 讀寫分離✔️ | 標準️️✔️ 叢集✔️ 讀寫分離✔️ | ❌ | ❌ | ❌ |
#no_loose_sentinel-password-free-commands | 在開啟哨兵模式以及#no_loose_sentinel-password-free-access參數後,您還可以通過本參數添加額外的免密命令列表(預設為空白)。 重要
| 標準️️✔️ 叢集✔️ 讀寫分離✔️ | 標準️️✔️ 叢集✔️ 讀寫分離✔️ | ❌ | ❌ | ❌ |
#no_loose_statistics-cmds | 本組參數為執行個體可觀測效能力的一部分,設定後還需要配合審計日誌才會生效,統計周期為5秒/次。
說明
| ❌ | ❌ | 標準️️❌ 叢集✔️ 讀寫分離✔️ | 標準️️❌ 叢集✔️ 讀寫分離✔️ | 標準️️❌ 叢集✔️ 讀寫分離✔️ |
#no_loose_statistics-ip-enable | ❌ | ❌ | 標準️️❌ 叢集✔️ 讀寫分離✔️ | 標準️️❌ 叢集✔️ 讀寫分離✔️ | 標準️️❌ 叢集✔️ 讀寫分離✔️ | |
#no_loose_statistics-keys | ❌ | ❌ | 標準️️❌ 叢集✔️ 讀寫分離✔️ | 標準️️❌ 叢集✔️ 讀寫分離✔️ | 標準️️❌ 叢集✔️ 讀寫分離✔️ | |
#no_loose_tls-min-version | 設定執行個體支援的TLS最低版本,可選值:
| 標準️️❌ 叢集✔️ 讀寫分離✔️ | 標準️️❌ 叢集✔️ 讀寫分離✔️ | 標準️️❌ 叢集✔️ 讀寫分離✔️ | 標準️️❌ 叢集✔️ 讀寫分離✔️ | 標準️️❌ 叢集✔️ 讀寫分離✔️ |
cluster_compat_enable | 在叢集架構代理模式或讀寫分離架構,開啟或關閉原生Redis cluster文法相容,可選值:
| 標準️️❌ 叢集✔️ 讀寫分離✔️ | 標準️️❌ 叢集✔️ 讀寫分離✔️ | 標準️️❌ 叢集✔️ 讀寫分離✔️ | 標準️️❌ 叢集✔️ 讀寫分離✔️ | 標準️️❌ 叢集✔️ 讀寫分離✔️ |
max_session_processing | 單個串連允許堆積的最大請求數。代理節點轉寄用戶端的請求給資料節點,但是未收到資料節點的回複,此時該請求即處於堆積狀態。該參數主要用於限制代理節點前後端處理能力差異導致的請求堆積,避免記憶體上漲的問題。 | 標準️️❌ 叢集✔️ 讀寫分離✔️ | 標準️️❌ 叢集✔️ 讀寫分離✔️ | 標準️️❌ 叢集✔️ 讀寫分離✔️ | 標準️️❌ 叢集✔️ 讀寫分離✔️ | 標準️️❌ 叢集✔️ 讀寫分離✔️ |
ptod_enabled | 是否將用戶端的IP地址通過代理節點透傳到資料節點,可選值:
說明 標準架構或叢集架構直連模式均不涉及該參數。 | 標準❌ 叢集✔️ 讀寫分離✔️ | 標準❌ 叢集✔️ 讀寫分離✔️ | 標準️️❌ 叢集✔️ 讀寫分離✔️ | 標準️️❌ 叢集✔️ 讀寫分離✔️ | ❌ |
readonly_lua_route_ronode_enable | 開啟或關閉唯讀副本的Lua執行模式,可選值:
| 標準️️❌ 叢集❌️ 讀寫分離✔️ | 標準️️❌ 叢集❌️ 讀寫分離✔️ | 標準️️❌ 叢集❌️ 讀寫分離✔️ | 標準️️❌ 叢集❌️ 讀寫分離✔️ | ❌ |
read_request_only_ronode_whenrwsplit_enable | 開啟或關閉唯讀帳號請求定向轉寄,可選值:
| 標準️️❌ 叢集❌️ 讀寫分離✔️ | 標準️️❌ 叢集❌️ 讀寫分離✔️ | 標準️️❌ 叢集❌️ 讀寫分離✔️ | 標準️️❌ 叢集❌️ 讀寫分離✔️ | 標準️️❌ 叢集❌️ 讀寫分離✔️ |
rt_threshold_ms | Proxy 伺服器中的慢日誌閾值,單位為毫秒(ms)。如果Proxy 伺服器處理一個請求的時間超過該閾值,則會產生一條慢日誌。 說明 計時方式:從Proxy 伺服器向資料節點發出請求開始,到Proxy 伺服器收到響應結束。 | 標準️️❌ 叢集✔️️️️️ 讀寫分離✔️ | 標準️️❌ 叢集✔️️️️️ 讀寫分離✔️ | 標準️️❌ 叢集✔️️️️️ 讀寫分離✔️ | 標準️️❌ 叢集✔️️️️️ 讀寫分離✔️ | 標準️️❌ 叢集✔️️️️️ 讀寫分離✔️ |
script_check_enable | 在叢集架構代理模式或讀寫分離架構,Proxy對Lua指令碼的檢測項,具體檢查項請參見Proxy對Lua的檢測項,可選值:
| 標準️️❌ 叢集✔️️️️️ 讀寫分離✔️ | 標準️️❌ 叢集✔️️️️️ 讀寫分離✔️ | 標準️️❌ 叢集✔️️️️️ 讀寫分離✔️ | 標準️️❌ 叢集✔️️️️️ 讀寫分離✔️ | 標準️️❌ 叢集✔️️️️️ 讀寫分離✔️ |
transfer_subscrible_to_psubscrible_enable | 開啟或關閉SUBSCRIBE轉PSUBSCRIBE功能,可選值:
| 標準️️❌ 叢集✔️️️️️ 讀寫分離✔️ | 標準️️❌ 叢集✔️️️️️ 讀寫分離✔️ | 標準️️❌ 叢集✔️️️️️ 讀寫分離✔️ | 標準️️❌ 叢集✔️️️️️ 讀寫分離✔️ | ❌ |
appendfsync | AOF(AppendOnly File)持久化功能的fsync頻率,僅在appendonly參數開啟時生效,預設為everysec,不支援修改。 | 標準️️✔️ 叢集✔️️️️️ 讀寫分離✔️ | 標準️️✔️ 叢集✔️️️️️ 讀寫分離✔️ | 標準️️✔️ 叢集✔️️️️️ 讀寫分離✔️ | 標準️️✔️ 叢集✔️️️️️ 讀寫分離✔️ | 標準️️✔️ 叢集✔️️️️️ 讀寫分離✔️ |
appendonly | 開啟或關閉主節點的AOF持久化功能,可選值:
| 標準️️✔️ 叢集✔️️️️️ 讀寫分離✔️ | 標準️️✔️ 叢集✔️️️️️ 讀寫分離✔️ | 標準️️✔️ 叢集✔️️️️️ 讀寫分離✔️ | 標準️️✔️ 叢集✔️️️️️ 讀寫分離✔️ | 標準️️✔️ 叢集✔️️️️️ 讀寫分離✔️ |
| pubsub為限制對發布訂閱用戶端的輸出緩衝,預設值為33554432 8388608 60。 normal為限制對普通用戶端的輸出緩衝,預設值為524288000 0 0。 參數值格式均為
重要
| 標準️️✔️ 叢集✔️️️️️ 讀寫分離✔️ | 標準️️✔️ 叢集✔️️️️️ 讀寫分離✔️ | 標準️️✔️ 叢集✔️️️️️ 讀寫分離✔️ | 標準️️✔️ 叢集✔️️️️️ 讀寫分離✔️ | 標準️️✔️ 叢集✔️️️️️ 讀寫分離✔️ |
dynamic-hz | 開啟或關閉動態hz,可選值:
| 標準️️✔️ 叢集✔️️️️️ 讀寫分離✔️ | 標準️️✔️ 叢集✔️️️️️ 讀寫分離✔️ | 標準️️✔️ 叢集✔️ 讀寫分離✔️ | ❌ | ❌ |
| 相容Redis 6.0及以下版本為hash-max-ziplist-entries和hash-max-ziplist-value。 當雜湊對象同時滿足以下兩個條件時, 使用ziplist編碼。
| ❌ | 標準️️✔️ 叢集✔️️️️️ 讀寫分離✔️ | 標準️️✔️ 叢集✔️️️️️ 讀寫分離✔️ | 標準️️✔️ 叢集✔️️️️️ 讀寫分離✔️ | 標準️️✔️ 叢集✔️️️️️ 讀寫分離✔️ |
| 相容Redis 7.0版本起為hash-max-listpack-entries和hash-max-listpack-value。 當雜湊對象同時滿足以下兩個條件時, 使用ziplist(listpack)編碼。
| 標準️️✔️ 叢集✔️️️️️ 讀寫分離✔️ | ❌ | ❌ | ❌ | ❌ |
hello_enabled | 在叢集架構代理模式或讀寫分離架構,是否開啟通過HELLO命令切換協議RESP2、RESP3協議的開關。取值:
說明 僅Proxy 7.0.9及以上版本支援該參數。 | 標準️️❌ 叢集✔️ 讀寫分離✔️ | 標準️️❌ 叢集✔️ 讀寫分離✔️ | 標準️️❌ 叢集✔️ 讀寫分離✔️ | ❌ | ❌ |
hz | 設定執行個體背景工作執行頻率,例如清除到期鍵任務。取值範圍為1~500,預設值為10,即每秒執行10次。 說明 該值越大,CPU資源消耗越多,但在到期鍵較多的情況下清理頻率也更高,同時執行個體能夠更精確地處理逾時。建議取值不超過100。 | 標準️️✔️ 叢集✔️️️️️ 讀寫分離✔️ | 標準️️✔️ 叢集✔️️️️️ 讀寫分離✔️ | 標準️️✔️ 叢集✔️️️️️ 讀寫分離✔️ | 標準️️✔️ 叢集✔️️️️️ 讀寫分離✔️ | 標準️️✔️ 叢集✔️️️️️ 讀寫分離✔️ |
latency-tracking | 是否開啟命令時延監控,可選值:
說明 僅相容Redis 7.0及以上支援該參數。 | 標準️️✔️ 叢集✔️️️️️ 讀寫分離✔️ | ❌ | ❌ | ❌ | ❌ |
lazyfree-lazy-eviction | 是否開啟基於lazyfree的驅逐功能,可選值:
| 標準️️✔️ 叢集✔️️️️️ 讀寫分離✔️ | 標準️️✔️ 叢集✔️️️️️ 讀寫分離✔️ | 標準️️✔️ 叢集✔️️️️️ 讀寫分離✔️ | 標準️️✔️ 叢集✔️️️️️ 讀寫分離✔️ | ❌ |
lazyfree-lazy-expire | 是否開啟基於lazyfree的到期Key刪除功能,可選值:
| 標準️️✔️ 叢集✔️️️️️ 讀寫分離✔️ | 標準️️✔️ 叢集✔️️️️️ 讀寫分離✔️ | 標準️️✔️ 叢集✔️️️️️ 讀寫分離✔️ | 標準️️✔️ 叢集✔️️️️️ 讀寫分離✔️ | ❌ |
lazyfree-lazy-server-del | DEL命令是否基於lazyfree非同步刪除資料,可選值:
| 標準️️✔️ 叢集✔️️️️️ 讀寫分離✔️ | 標準️️✔️ 叢集✔️️️️️ 讀寫分離✔️ | 標準️️✔️ 叢集✔️️️️️ 讀寫分離✔️ | 標準️️✔️ 叢集✔️️️️️ 讀寫分離✔️ | ❌ |
lazyfree-lazy-user-del | 執行DEL命令時是否基於lazyfree非同步刪除資料,可選值:
| 標準️️✔️ 叢集✔️️️️️ 讀寫分離✔️ | 標準️️✔️ 叢集✔️️️️️ 讀寫分離✔️ | ❌ | ❌ | ❌ |
lazyfree-lazy-user-flush | 是否將FLUSHDB、FLUSHALL、SCRIPT FLUSH、FUNCTION FLUSH命令自動轉換為Lazyfree非同步刪除模式,可選值:
說明 僅相容Redis 7.0及以上支援該參數。 | 標準️️✔️ 叢集✔️️️️️ 讀寫分離✔️ | ❌ | ❌ | ❌ | ❌ |
list-compress-depth | 列表中兩端不被壓縮的節點個數,取值範圍0~65535。
| 標準️️✔️ 叢集✔️️️️️ 讀寫分離✔️ | 標準️️✔️ 叢集✔️️️️️ 讀寫分離✔️ | 標準️️✔️ 叢集✔️️️️️ 讀寫分離✔️ | 標準️️✔️ 叢集✔️️️️️ 讀寫分離✔️ | ❌ |
list-max-ziplist-entries | 鏈表對象同時滿足以下兩個條件時, 使用ziplist編碼。
| ❌ | ❌ | ❌ | ❌ | 標準️️✔️ 叢集✔️️️️️ 讀寫分離✔️ |
list-max-ziplist-value | ||||||
| 相容Redis 6.0及以下版本為list-max-ziplist-size,Redis 7.0版本起為list-max-listpack-size。
| 標準️️✔️ 叢集✔️️️️️ 讀寫分離✔️ | 標準️️✔️ 叢集✔️️️️️ 讀寫分離✔️ | 標準️️✔️ 叢集✔️️️️️ 讀寫分離✔️ | 標準️️✔️ 叢集✔️️️️️ 讀寫分離✔️ | ❌ |
maxmemory-policy | 資料逐出策略。當執行個體記憶體不足,使用量達到Maxmemory時,會觸發資料逐出,您可以選擇不同的資料逐出策略。取值如下: 說明
| 標準️️✔️ 叢集✔️️️️️ 讀寫分離✔️ | 標準️️✔️ 叢集✔️️️️️ 讀寫分離✔️ | 標準️️✔️ 叢集✔️️️️️ 讀寫分離✔️ | 標準️️✔️ 叢集✔️️️️️ 讀寫分離✔️ | 標準️️✔️ 叢集✔️️️️️ 讀寫分離✔️ |
maxmemory-eviction-tenacity | 資料逐出(Eviction)因子,用於設定每次資料逐出的延時,取值為[0-100],預設為10。
說明 僅Redis 7.0支援該參數。 | 標準️️✔️ 叢集✔️️️️️ 讀寫分離✔️ | ❌ | ❌ | ❌ | ❌ |
active-expire-effort | 刪除到期Key(Expire)因子,用於設定每次刪除到期Key的延時,取值為[1-10],預設為1。數值越大刪除到期Key越快,同時消耗的CPU資源也更多。 | 標準️️✔️ 叢集✔️️️️️ 讀寫分離✔️ | 標準️️✔️ 叢集✔️️️️️ 讀寫分離✔️ | ❌ | ❌ | ❌ |
notify-keyspace-events | notify-keyspace-events的參數值可以是以下字元的任意組合,它指定了伺服器該發送哪些類型的通知。該參數將針對整個執行個體(所有DB)啟用通知,啟用後會額外消耗CPU,更多資訊請參見Redis keyspace notifications。
重要 輸入的參數中至少包含K或E, 否則不會有任何通知被分發。 例如您希望訂閱到期事件,您可以在參數設定中將該參數設定為 | 標準️️✔️ 叢集✔️️️️️ 讀寫分離✔️ | 標準️️✔️ 叢集✔️️️️️ 讀寫分離✔️ | 標準️️✔️ 叢集✔️️️️️ 讀寫分離✔️ | 標準️️✔️ 叢集✔️️️️️ 讀寫分離✔️ | 標準️️✔️ 叢集✔️️️️️ 讀寫分離✔️ |
set-max-intset-entries | 當Set集合內的資料符合以下條件時,會使用intset編碼。
| 標準️️✔️ 叢集✔️️️️️ 讀寫分離✔️ | 標準️️✔️ 叢集✔️️️️️ 讀寫分離✔️ | 標準️️✔️ 叢集✔️️️️️ 讀寫分離✔️ | 標準️️✔️ 叢集✔️️️️️ 讀寫分離✔️ | 標準️️✔️ 叢集✔️️️️️ 讀寫分離✔️ |
slowlog-log-slower-than | 慢日誌的閾值,慢日誌將記錄執行時間超過該閾值的命令。單位為ms,預設值為20000(即20毫秒),取值範圍10000~10000000。 | 標準️️✔️ 叢集✔️️️️️ 讀寫分離✔️ | 標準️️✔️ 叢集✔️️️️️ 讀寫分離✔️ | 標準️️✔️ 叢集✔️️️️️ 讀寫分離✔️ | 標準️️✔️ 叢集✔️️️️️ 讀寫分離✔️ | 標準️️✔️ 叢集✔️️️️️ 讀寫分離✔️ |
slowlog-max-len | 慢日誌最多儲存記錄條數,取值範圍100~10000,預設值為1024。 | 標準️️✔️ 叢集✔️️️️️ 讀寫分離✔️ | 標準️️✔️ 叢集✔️️️️️ 讀寫分離✔️ | 標準️️✔️ 叢集✔️️️️️ 讀寫分離✔️ | 標準️️✔️ 叢集✔️️️️️ 讀寫分離✔️ | 標準️️✔️ 叢集✔️️️️️ 讀寫分離✔️ |
stream-node-max-bytes | Stream中每個宏節點(Macro Node)能夠佔用的最大記憶體,取值範圍:0~999,999,999,999,999。 說明 0表示無限制。 | 標準️️✔️ 叢集✔️️️️️ 讀寫分離✔️ | 標準️️✔️ 叢集✔️️️️️ 讀寫分離✔️ | 標準️️✔️ 叢集✔️ 讀寫分離✔️ | ❌ | ❌ |
stream-node-max-entries | Stream中每個宏節點中可儲存條目的最大數量,取值範圍:0~999,999,999,999,999。 說明 0表示無限制。 | 標準️️✔️ 叢集✔️️️️️ 讀寫分離✔️ | 標準️️✔️ 叢集✔️️️️️ 讀寫分離✔️ | 標準️️✔️ 叢集✔️ 讀寫分離✔️ | ❌ | ❌ |
tracking-table-max-keys | 設定Tracking Table中儲存Key數量的上限,取值為[0-1000000000],預設為1000000。 說明 僅Redis 7.0支援該參數。 | 標準️️✔️ 叢集✔️️️️️ 讀寫分離✔️ | ❌ | ❌ | ❌ | ❌ |
timeout | 當用戶端的空閑時間達到指定秒數後,執行個體會關閉該串連,取值為[0,100000],預設為0(表示不斷開任何串連),單位為秒。 | 標準️️✔️ 叢集✔️️️️️ 讀寫分離✔️ | 標準️️✔️ 叢集✔️️️️️ 讀寫分離✔️ | 標準️️✔️ 叢集✔️️️️️ 讀寫分離✔️ | 標準️️✔️ 叢集✔️️️️️ 讀寫分離✔️ | ❌ |
| 相容Redis 6.0及以下版本為zset-max-ziplist-entries和zset-max-ziplist-value。 排序集合對象同時滿足以下兩個條件時, 使用ziplist編碼。
| ❌ | 標準️️✔️ 叢集✔️️️️️ 讀寫分離✔️ | 標準️️✔️ 叢集✔️️️️️ 讀寫分離✔️ | 標準️️✔️ 叢集✔️️️️️ 讀寫分離✔️ | 標準️️✔️ 叢集✔️️️️️ 讀寫分離✔️ |
| 相容Redis 7.0版本起為zset-max-listpack-entries和zset-max-listpack-value。 排序集合對象同時滿足以下兩個條件時, 使用listpack編碼。
| 標準️️✔️ 叢集✔️️️️️ 讀寫分離✔️ | ❌ | ❌ | ❌ | ❌ |