全部產品
Search
文件中心

Tair (Redis® OSS-Compatible):Tair企業版配置參數列表

更新時間:Dec 07, 2024

您可以根據業務情境對Tair(企業版)執行個體的參數進行調優與自訂配置,已提升執行個體的效能與安全性。本文介紹各參數的詳細說明。

注意事項

  • 若設定參數時報錯Parameter is not supported for current version,請升級小版本後重試,具體操作請參見升級小版本與代理版本

  • 部分參數在提交修改後會自動重啟執行個體(重啟過程中執行個體會發生秒級閃斷)。在設定參數時,您需要關注目標參數的重啟生效列,更多資訊,請參見設定參數

重要

不同的引擎版本和架構支援的參數有所區別,本文僅包含Tair(企業版)執行個體的參數(包含記憶體型持久記憶體型磁碟型),關於Redis開源版執行個體的參數請參見Redis參數支援

支援的參數及說明

為便於閱讀和內容表達,本文的表格約定使用下述注釋:

  • ✔️表示在該大版本或架構下,支援該參數。

  • ❌表示在該大版本或架構下,不支援該參數。

說明
  • 為最大程度保障執行個體的穩定運行,目前僅開放部分參數,若某個參數未在本文中列出,即不支援設定該參數。

  • 關於架構的詳細介紹,請參見架構資訊查詢

記憶體型與持久記憶體型

參數

說明

執行個體系列與架構

記憶體型

持久記憶體型

#no_loose_check-whitelist-always

開啟專用網路免密後,是否檢查用戶端的IP在執行個體白名單中。可選值:

  • yes:開啟檢查。在開啟免密訪問後,仍需將同一專用網路的用戶端IP地址添加至執行個體的白名單中,才可通過該用戶端串連執行個體。

    若開啟免密,但未正確設定白名單時,串連的報錯樣本:(error) ERR illegal address

  • no(預設):不檢查。在開啟免密訪問後,無需將同一專用網路的用戶端IP地址添加至執行個體的白名單中,可通過該用戶端串連執行個體。

說明

經典版執行個體支援設定該參數。

標準️️✔️

叢集✔️

讀寫分離✔️

#no_loose_disabled-commands

設定禁用命令,可根據業務需求禁用某些高危命令或高時間複雜度的命令,例如FLUSHALLFLUSHDBKEYSHGETALLEVALEVALSHASCRIPT等。

說明
  • 命令以小寫字母的形式填寫,多個命令間使用英文逗號(,)分隔。

  • 禁用FLUSHALL命令不會影響控制台中清除數據功能。

  • 為保障執行個體穩定、高效率地運行,部分命令不支援被禁用,例如CONFIG等,具體命令請參見不支援禁用的命令

標準️️✔️

叢集✔️

讀寫分離✔️

標準️️✔️

叢集✔️

讀寫分離✔️

#no_loose_lua-strict-mode

是否開啟Lua指令碼strict 模式。開啟後標準架構執行個體可以類似叢集架構,要求Lua指令碼中的資料Key必須由KEYS數組來傳遞(不能在Lua指令碼中動態產生)。開啟後Lua指令碼可以進行多線程並行加速,提升數倍的效能。可選值:

  • no(預設):不開啟。

  • yes:開啟(推薦),使用該功能還需開啟txn-isolation-lock參數,關於Lua指令碼規範請參見Lua指令碼規範與常見報錯

說明

該參數僅在Tair記憶體型(相容Redis 6.0版本)和磁碟型中支援。

標準️️✔️

叢集❌

讀寫分離❌️

#no_loose_publish-no-wait-result

開啟該參數後,會提升Tair執行個體執行PUBLISH命令的吞吐效能,但PUBLISH命令傳回值總是0。

  • no(預設):不開啟。

  • yes:開啟。

說明

該參數僅在Tair記憶體型(相容Redis 6.0版本)中支援。

標準️️✔️

叢集✔️

讀寫分離✔️

sentinel_compat_enable

在Proxy執行個體中(叢集架構代理模式或讀寫分離架構),開啟或關閉哨兵(Sentinel)相容模式,可選值:

  • 1:開啟。

  • 0(預設):關閉。

標準️️❌

叢集✔️

讀寫分離✔️

標準️️❌

叢集✔️

讀寫分離✔️

#no_loose_sentinel-enabled

在標準架構,開啟或關閉哨兵(Sentinel)相容模式,可選值:

  • yes:開啟。

  • no(預設):關閉。

標準️️✔️

叢集✔️

讀寫分離❌

標準️️✔️

叢集✔️

讀寫分離❌

#no_loose_sentinel-password-free-access

開啟哨兵模式時,是否允許免密執行Sentinel相關命令,可選值:

  • yes:開啟。開啟後,可以在不開啟VPC免密功能的情況下,直接在VPC免密條件下執行Sentinel命令。

    開啟後,使用SUBSCRIBE、SENTINEL命令訂閱、監聽+switch-master通道免密。

  • no:預設值,關閉。

標準️️✔️

叢集✔️

讀寫分離✔️

標準️️✔️

叢集✔️

讀寫分離✔️

#no_loose_sentinel-password-free-commands

在開啟哨兵模式以及#no_loose_sentinel-password-free-access參數後,您還可以通過本參數添加額外的免密命令列表(預設為空白)。

說明
  • 設定後,您可以在不開啟VPC免密功能的情況下,直接在VPC免密條件下執行對應命令,請謹慎操作。

  • 命令以小寫字母的形式填寫,多個命令間使用英文逗號(,)分隔。

標準️️✔️

叢集✔️

讀寫分離✔️

標準️️✔️

叢集✔️

讀寫分離✔️

#no_loose_statistics-cmds

本組參數為Tair(企業版)可觀測效能力的一部分,設定後還需要配合審計日誌才會生效,統計周期為5秒/次。

  • #no_loose_statistics-cmds:設定要統計的命令,統計這些命令的來源IP地址和頻率,預設為空白,即不統計。多個命令以英文逗號(,)分隔。

  • #no_loose_statistics-ip-enable:設定是否開啟IP地址統計,即記錄建連的IP地址,可選值為yes(開啟),no(預設值,關閉)。

  • #no_loose_statistics-keys:設定要統計的Key,統計這些Key的來源IP地址和頻率,預設為空白,即不統計。多個Key以英文逗號(,)分隔。

說明
  • 為避免影響效能,#no_loose_statistics-cmds#no_loose_statistics-keys參數中設定的值不宜設定過多,並確保僅在故障排查或營運需要時開啟。

  • 從您可以通過Log Service控制台下載審計日誌(下載方法參見下載審計日誌),然後通過關鍵字過濾所需資訊:

    • type值為7:表示IP地址的QPS統計資訊。

    • type值為8:表示IP地址建連統計資訊。

    • type值為9:表示Key統計資訊。

    • type值為10:表示命令統計資訊。

標準️️❌

叢集✔️

讀寫分離✔️

#no_loose_statistics-ip-enable

標準️️❌

叢集✔️

讀寫分離✔️

#no_loose_statistics-keys

標準️️❌

叢集✔️

讀寫分離✔️

#no_loose_tls-min-version

設定執行個體支援的TLS最低版本,可選值:

  • TLSv1(預設)。

  • TLSv1.1

  • TLSv1.2

標準️️❌

叢集✔️

讀寫分離✔️

active-expire-effort

設定清理到期Key任務的主動性。增加該值可以使引擎更加主動地清理已到期的Key,減少已到期Key佔用的記憶體空間,但同時會使CPU使用率與延遲上升。取值範圍為1~10,預設值為1。

說明

該參數僅在Tair持久記憶體型支援。

標準️️✔️

叢集✔️️️️️

讀寫分離✔️

appendfsync

AOF(AppendOnly File)持久化功能的fsync頻率,僅在appendonly參數開啟時生效,預設為everysec,不支援修改。

標準️️✔️

叢集✔️️️️️

讀寫分離✔️

標準️️✔️

叢集✔️️️️️

讀寫分離✔️

appendonly

開啟或關閉主節點的AOF持久化功能,可選值:

  • yes(預設):開啟AOF持久化。

  • no:關閉AOF持久化。

    說明

    RDB(Redis database)持久化功能預設為每天一次,更多資訊請參見自動或手動備份

標準️️✔️

叢集✔️️️️️

讀寫分離✔️

標準️️✔️

叢集✔️️️️️

讀寫分離✔️

  • client-output-buffer-limit pubsub

  • client-output-buffer-limit normal

限制對發布訂閱用戶端、普通用戶端的輸出緩衝,參數值格式為<hard limit> <soft limit> <soft seconds>pubsub的預設值為33554432 8388608 60normal的預設值為524288000 0 0

  • <hard limit>:當某用戶端的輸出緩衝區佔用記憶體達到或超過hard limit的限制時,斷開該用戶端的串連。hard limit值的單位為Byte。

  • <soft limit><soft seconds>:當某用戶端的輸出緩衝區佔用記憶體達到或超過soft limit的限制,且該狀態期間大於等於soft seconds限定的秒數,斷開該用戶端的串連。soft limit值的單位為Byte,soft seconds值的單位為秒。

重要
  • 僅記憶體型(相容Redis 6.0及以上版本)才支援client-output-buffer-limit normal參數。

  • 用戶端輸出緩衝區會佔用運行記憶體,如果堆積命令過多會造成執行個體資料逐出、甚至記憶體超限宕機。調整該參數之前請仔細校正執行個體記憶體規格,請謹慎操作。

標準️️✔️

叢集✔️️️️️

讀寫分離✔️

標準️️✔️

叢集✔️️️️️

讀寫分離✔️

cluster_compat_enable

在叢集架構代理模式或讀寫分離架構,開啟或關閉原生Redis cluster文法相容,可選值:

  • 0:關閉。

  • 1(預設):開啟。

標準️️❌

叢集✔️

讀寫分離✔️

標準️️❌

叢集✔️

讀寫分離✔️

dynamic-hz

開啟或關閉動態hz,可選值:

  • yes(預設):開啟。

  • no:關閉。

標準️️✔️

叢集✔️

讀寫分離✔️

標準️️✔️

叢集✔️️️️️

讀寫分離✔️

globalvectorindex_enabled

TairVector全域索引開關,取值:

  • 0(預設值):關閉。

  • 1:開啟。

標準️️❌

叢集✔️

讀寫分離❌

hash-max-ziplist-entries

雜湊對象同時滿足以下兩個條件時, 使用ziplist編碼。

  • 雜湊對象儲存的索引值對數量小於hash-max-ziplist-entries的值。

  • 雜湊對象儲存的所有索引值對的鍵和值的字串長度的位元組數都小於hash-max-ziplist-value的值。

標準️️✔️

叢集✔️️️️️

讀寫分離✔️

標準️️✔️

叢集✔️️️️️

讀寫分離✔️

hash-max-ziplist-value

hello_enabled

在叢集架構代理模式或讀寫分離架構,是否開啟通過HELLO命令切換協議RESP2、RESP3協議的開關。取值:

  • 1:開啟,開啟後即可通過HELLO命令切換協議RESP2或RESP3協議。

  • 0(預設值):關閉。

說明

僅Proxy 7.0.9及以上版本支援該參數。

標準️️❌

叢集✔️

讀寫分離✔️

標準️️❌

叢集✔️

讀寫分離✔️

hz

設定執行個體背景工作執行頻率,例如清除到期鍵任務。取值範圍為1~500,預設值為10,即每秒執行10次。

說明

該值越大,CPU資源消耗越多,但在到期鍵較多的情況下清理頻率也更高,同時執行個體能夠更精確地處理逾時。建議取值不超過100。

標準️️✔️

叢集✔️️️️️

讀寫分離✔️

標準️️✔️

叢集✔️️️️️

讀寫分離✔️

lazyfree-lazy-eviction

是否開啟基於lazyfree的驅逐功能,可選值:

  • yes:開啟。

  • no(預設):不開啟。

標準️️✔️

叢集✔️️️️️

讀寫分離✔️

標準️️✔️

叢集✔️️️️️

讀寫分離✔️

lazyfree-lazy-expire

是否開啟基於lazyfree的到期Key刪除功能,可選值:

  • yes(預設):開啟。

  • no:不開啟。

標準️️✔️

叢集✔️️️️️

讀寫分離✔️

標準️️✔️

叢集✔️️️️️

讀寫分離✔️

lazyfree-lazy-server-del

DEL命令是否基於lazyfree非同步刪除資料,可選值:

  • yes(預設):開啟。

  • no:不開啟。

標準️️✔️

叢集✔️️️️️

讀寫分離✔️

標準️️✔️

叢集✔️️️️️

讀寫分離✔️

lazyfree-lazy-user-del

執行DEL命令時是否基於lazyfree非同步刪除資料,可選值:

  • yes(預設):開啟。

  • no:不開啟。

標準️️✔️

叢集✔️️️️️

讀寫分離✔️

list-compress-depth

列表中兩端不被壓縮的節點個數,取值範圍0~65535。

  • 0(預設):表示都不壓縮。

  • 1~65535:表示list兩端各有1~65535個節點不壓縮,中間的節點壓縮。

標準️️✔️

叢集✔️️️️️

讀寫分離✔️

標準️️✔️

叢集✔️️️️️

讀寫分離✔️

list-max-ziplist-entries

鏈表對象同時滿足以下兩個條件時, 使用ziplist編碼。

  • 鏈表集合對象儲存的元素數量小於list-max-ziplist-entries的值。

  • 鏈表對象儲存的所有元素的字串長度的位元組數都小於list-max-ziplist-value的值。

list-max-ziplist-value

list-max-ziplist-size

  • 取正值表示按照資料項目個數來限定每個quicklist節點上的ziplist長度。例如,當該參數配置為5時,每個quicklist節點的ziplist最多包含5個資料項目。

  • 取負值表示按照佔用位元組數來限定每個quicklist節點上的ziplist長度,可選值:

    • -5:每個quicklist節點上的ziplist大小不能超過64 Kb。

    • -4:每個quicklist節點上的ziplist大小不能超過32 Kb。

    • -3:每個quicklist節點上的ziplist大小不能超過16 Kb。

    • -2:預設值,每個quicklist節點上的ziplist大小不能超過8 Kb。

    • -1:每個quicklist節點上的ziplist大小不能超過4 Kb。

標準️️✔️

叢集✔️️️️️

讀寫分離✔️

標準️️✔️

叢集✔️️️️️

讀寫分離✔️

maxmemory-policy

資料逐出策略。當執行個體記憶體不足,使用量達到Maxmemory時,會觸發資料逐出,您可以選擇不同的資料逐出策略。取值如下:

說明
  • 每個執行個體的Maxmemory為執行個體的規格大小,且不支援修改。例如購買的執行個體規格為2 GB,則該執行個體的Maxmemory為2 GB。

  • 在叢集架構中,當單個資料節點達到Maxmemory時(即使此時的總記憶體使用量率未到達上限),該資料節點也會觸發資料逐出。您需要處理資料扭曲的問題,更多資訊請參見如何處理資料扭曲

  • LRU表示最近最少使用的。LFU表示最不常用的。LRU、LFU和volatile-ttl都是使用近似隨機演算法實現的。

  • volatile-lru(記憶體型及Redis開源版預設):從已設定到期時間(Expire)的Key中,刪除最近最少使用的Key(LRU演算法),且不會考慮Key是否已經到期。

  • noeviction(持久記憶體型預設):不刪除任何Key,當記憶體達到上限時,將無法寫入新資料,資料庫會返回錯誤資訊。

  • volatile-lfu:從已設定到期時間(Expire)的Key中,刪除最不常用的Key(LFU演算法)。

  • volatile-random:從已設定到期時間(Expire)的Key中,隨機刪除一些Key。

  • volatile-ttl:從已設定到期時間(Expire)的Key中,根據存活時間(TTL)從小到大排序進行刪除。

  • allkeys-lru:從所有Key中,刪除最近最少使用的Key(LRU演算法)。

  • allkeys-lfu:從所有Key中,刪除最不常用的Key(LFU演算法)。

  • allkeys-random:從所有Key中,隨機刪除一些Key。

標準️️✔️

叢集✔️️️️️

讀寫分離✔️

標準️️✔️

叢集✔️️️️️

讀寫分離✔️

max_session_processing

單個串連允許堆積的最大請求數。代理節點轉寄用戶端的請求給資料節點,但是未收到資料節點的回複,此時該請求即處於堆積狀態。該參數主要用於限制代理節點前後端處理能力差異導致的請求堆積,避免記憶體上漲的問題。

標準️️❌

叢集✔️

讀寫分離✔️

notify-keyspace-events

notify-keyspace-events的參數值可以是以下字元的任意組合,它指定了伺服器該發送哪些類型的通知。該參數將針對整個執行個體(所有DB)啟用通知,啟用後會額外消耗CPU,更多資訊請參見Redis keyspace notifications

  • K:鍵空間通知,所有通知以__keyspace@<db>__為首碼。

  • E:鍵事件通知,所有通知以__keyevent@<db>__為首碼。

  • gDELEXPIRERENAME等類型無關的通用命令的通知。

  • $:字串命令的通知,會發送關於字串的建立、修改、刪除等操作的通知。

  • l:列表命令的通知。

  • s:集合命令的通知。

  • h:雜湊命令的通知。

  • z:有序集合命令的通知。

  • x:到期事件,不一定在鍵到期時發送,而是在到期鍵被刪除時發送。

  • e:驅逐(evict)事件,每當有鍵因為maxmemory政策而被刪除時發送。

  • A:參數g$lshzxe的別名,表示監聽上述所有事件,設定樣本為AKE

重要

輸入的參數中至少包含KE, 否則不會有任何通知被分發。

例如您希望訂閱到期事件,您可以在參數設定中將該參數設定為Ex。設定參數後,在用戶端執行對應的訂閱命令:PSUBSCRIBE __keyevent@0__*,表示訂閱DB0的鍵事件通知。

標準️️✔️

叢集✔️️️️️

讀寫分離✔️

標準️️✔️

叢集✔️️️️️

讀寫分離✔️

pena_rename_move_compatible_enabled

是否啟用MOVE和RENAME系列命令相容模式,相關命令的時間複雜度為O(n),不同於原生Redis的O(1),若執行對象為大Key則耗時會較長,可選值:

  • no(預設):不開啟。

  • yes:開啟,可執行上述相關命令,文法與原生Redis相同。

說明

該參數僅在Tair持久記憶體型1.2.4及以上版本中支援。

標準️️✔️

叢集✔️️️️️

讀寫分離✔️

ptod_enabled

在叢集架構代理模式或讀寫分離架構,是否將用戶端的IP地址通過代理節點透傳到資料節點,可選值:

  • 0(預設):不透傳用戶端的IP地址。

  • 1:透傳用戶端IP地址。

標準️️❌

叢集✔️

讀寫分離✔️

標準️️❌

叢集✔️

讀寫分離✔️

query_cache_enabled

是否啟用代理查詢快取功能,具體使用方法,請參見通過Proxy Query Cache最佳化熱點Key問題,該參數取值:

  • 0(預設):不啟用。

  • 1:啟用。

重要

由於代理節點中緩衝的熱點Key的索引值對資訊在有效時間內不會更新,在啟用該功能前,您需要確認業務上是否允許資料在緩衝有效時間內的 最終一致性

標準️️❌

叢集✔️

讀寫分離✔️

標準️️❌

叢集✔️

讀寫分離✔️

query_cache_expire

快取資料的有效時間,單位為毫秒,取值:100~60000,預設值為1000

  • 若緩衝的資料在有效期間內被修改,修改後的資料不會同步至緩衝中,即相同的讀請求會擷取到緩衝中的髒資料,直至緩衝失效。

  • 您需要根據具體的業務情境和對髒資料的容忍度謹慎評估該參數的值,該值設定過小會降低緩衝的命中率,設定過大會導致用戶端在較長的時間內讀取到的是髒資料。

標準️️❌

叢集✔️

讀寫分離✔️

標準️️❌

叢集✔️

讀寫分離✔️

query_cache_mode

代理查詢快取的工作模式,取值:

  • 0(預設):只快取資料分區推送的熱點Key。

  • 1:緩衝所有Key並進行根據最近最少使用演算法LRU(Least Recently Used)進行淘汰。

重要

由於代理節點的緩衝空間有限(代理節點每個線程100 MB),若設定該參數的值為1,代理節點將按照LRU演算法淘汰Key,可能降低緩衝的命中率,從而引起整體效能的下降。

標準️️❌

叢集✔️

讀寫分離✔️

標準️️❌

叢集✔️

讀寫分離✔️

readonly_lua_route_ronode_enable

開啟或關閉唯讀副本的Lua執行模式,可選值:

  • 0(預設):關閉Lua執行模式,唯讀副本不支援Lua,Lua命令會由主節點處理。

  • 1:開啟Lua執行模式,僅包含讀操作的Lua會被轉寄到唯讀副本處理。

標準️️❌

叢集❌️

讀寫分離✔️

read_request_only_ronode_whenrwsplit_enable

開啟或關閉唯讀帳號請求定向轉寄,可選值:

  • 0(預設):關閉定向轉寄,唯讀帳號的請求將按照權重分配到各節點,包括主節點。

  • 1:開啟定向轉寄,唯讀帳號的請求將定向轉寄到唯讀副本,不會轉寄到主節點。

標準️️❌

叢集✔️️️️️

讀寫分離✔️

rt_threshold_ms

Proxy 伺服器中的慢日誌閾值,單位為毫秒(ms)。若Proxy 伺服器處理一個請求的時間超過該閾值,則會產生一條慢日誌。

說明

計時方式:從Proxy 伺服器向資料節點發出請求開始,到Proxy 伺服器收到響應結束。

標準️️❌

叢集✔️️️️️

讀寫分離✔️

標準️️❌

叢集✔️️️️️

讀寫分離✔️

script_check_enable

在叢集架構代理模式或讀寫分離架構,Proxy對Lua指令碼的檢測項,具體檢查項請參見Proxy對Lua的檢測項,可選值:

  • 0:不檢查。若執行Lua的執行個體帳號許可權為唯讀時, 仍會開啟檢查。

  • 1(預設):檢查。

標準️️❌

叢集✔️️️️️

讀寫分離✔️

set-max-intset-entries

當Set集合內的資料符合以下條件時,會使用intset編碼。

  • 當集合內所有資料都是字元對象。

  • 都是基數為10的整數,範圍為64位有符號整數。

標準️️✔️

叢集✔️️️️️

讀寫分離✔️

標準️️✔️

叢集✔️️️️️

讀寫分離✔️

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表示無限制。

標準️️✔️

叢集✔️

讀寫分離✔️

標準️️✔️

叢集✔️️️️️

讀寫分離✔️

timeout

當用戶端的空閑時間達到指定秒數後,執行個體會關閉該串連,取值為[0,100000],預設為0(表示不斷開任何串連),單位為秒。

標準️️✔️

叢集✔️️️️️

讀寫分離✔️

標準️️✔️

叢集✔️️️️️

讀寫分離✔️

transfer_subscrible_to_psubscrible_enable

開啟或關閉SUBSCRIBEPSUBSCRIBE功能,可選值:

  • 0(預設):關閉該功能,二者不轉換。

  • 1:開啟該功能,代理節點會將SUBSCRIBE轉換成PSUBSCRIBE處理。

    說明

    當在Lua中使用了PUB或SUB類命令,導致在訂閱的通道無法收到通知時,可以開啟該功能。

標準️️❌

叢集✔️️️️️

讀寫分離✔️

ts-auto-del-empty-skey-enable

當TairTS資料結構的Skey內部所有資料點都到期時,是否自動刪除Skey,可選值:

  • yes(預設):當Skey中資料點都到期時,會刪除該Skey。

  • no:不刪除。

說明

該參數僅在記憶體型(相容Redis 6.0、7.0版本)24.7.0.0及以上版本中支援。

標準️️✔️

叢集✔️️️️️

讀寫分離✔️

標準️️✔️

叢集✔️️️️️

讀寫分離✔️

zset-max-ziplist-entries

排序集合對象同時滿足以下兩個條件時, 使用ziplist編碼。

  • 排序集合對象儲存的所有索引值對的鍵和值的字串長度的位元組數都小於zset-max-ziplist-value的值。

  • 排序集合對象儲存的索引值對數量小於zset-max-ziplist-entries的值。

標準️️✔️

叢集✔️️️️️

讀寫分離✔️

標準️️✔️

叢集✔️️️️️

讀寫分離✔️

zset-max-ziplist-value

磁碟型

參數

說明

磁碟型

#no_loose_disabled-commands

設定禁用命令,可根據業務需求禁用某些高危命令或高時間複雜度的命令,例如FLUSHALLFLUSHDBKEYSHGETALLEVALEVALSHASCRIPT等。

說明
  • 命令以小寫字母的形式填寫,多個命令間使用英文逗號(,)分隔。

  • 禁用FLUSHALL命令不會影響控制台中清除數據功能。

  • 為保障執行個體穩定、高效率地運行,部分命令不支援被禁用,例如CONFIG等,具體命令請參見不支援禁用的命令

標準✔️️

#no_loose_lua-strict-mode

是否開啟Lua指令碼strict 模式。開啟後標準架構執行個體可以類似叢集架構,要求Lua指令碼中的資料Key必須由KEYS數組來傳遞(不能在Lua指令碼中動態產生)。開啟後Lua指令碼可以進行多線程並行加速,提升數倍的效能。可選值:

  • no(預設):不開啟。

  • yes:開啟(推薦),使用該功能還需開啟txn-isolation-lock參數,關於Lua指令碼規範請參見Lua指令碼規範與常見報錯

標準✔️️

latency-monitor-threshold

設定延遲閾值,超過閾值時間的事件會被記錄延遲事件,取值範圍:0 ~ 10000000,單位為毫秒。

標準✔️

max-write-batch-size

表示執行命令的過程中,在記憶體中產生磁碟儲存格式資料的大小限制,單位為Byte,取值範圍:0-1073741824(1 GB),預設為0,表示不設上限。

說明

若資料分布和請求容易產生較大的中間資料,推薦設定成1073741824(即1 GB),防止記憶體溢出。

標準✔️

slowlog-log-slower-than

慢日誌的閾值,慢日誌將記錄執行時間超過該閾值的命令。單位為ms,預設值為20000(即20毫秒),取值範圍10000~10000000。

標準✔️

slowlog-max-len

慢日誌最多儲存記錄條數,取值範圍:100~10000,預設值為1024

標準✔️️

scan-background-interval-ms

執行個體後台主動對Key進行輪詢,判斷資料的TTL等資訊並進行記憶體回收。

  • scan-background-interval-ms:輪詢時間間隔,單位為ms,預設為10000(即10s)。

  • batch-scan-count:每次輪詢數量,預設為200000,表示預設查詢20萬個Key。

說明

若您對後台記憶體回收要求較高,您可以適當調小scan-background-interval-ms值。但加大輪詢頻率也會佔用更多的磁碟頻寬,為不影響使用者請求,不建議大幅提升輪詢頻率。

標準✔️️

batch-scan-count

標準✔️️

txn-isolation-lock

是否開啟事務鎖,開啟後允許磁碟型執行個體執行MULTI、EXEC和Lua指令碼相關命令,事務鎖功能可能會導致效能下降10%,可選值:

  • no(預設):不開啟。

  • yes:開啟,可執行上述相關命令,文法與原生Redis相同。

標準✔️️