引擎特定參數 - Amazon MemoryDB

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

引擎特定參數

如果您未指定 Valkey 或 Redis OSS叢集的參數群組,則會使用適合您引擎版本的預設參數群組。您無法變更預設參數群組中任何參數的值。但是,只要可條件式修改參數的值在兩個參數群組中都是相同的,您便可以建立自訂參數群組並隨時將其指派給您的叢集。如需詳細資訊,請參閱建立參數群組

Valkey 7 和 Redis OSS 7 參數變更

注意

MemoryDB 推出向量搜尋,其中包含新的不可變參數群組 default.memorydb-valkey7.search。此參數群組可在 MemoryDB 主控台和使用 create-cluster CLI命令建立新 vector-search-enabled叢集時使用。預覽版本可在下列 AWS 區域使用:美國東部 (維吉尼亞北部)、美國東部 (俄亥俄)、美國西部 (奧勒岡)、亞太區域 (東京) 和歐洲 (愛爾蘭)。

參數群組系列: memorydb_valkey7

在 Valkey 7 和 Redis 7 OSS 中新增的參數如下所示。

名稱 詳細資訊 描述
latency-tracking

允許的值:yesno

預設:no

類型:字串

可修改:是

變更生效:直接套用至叢集中所有節點。

設定為 yes 時,會追蹤每個命令的延遲情況,並可透過 INFO 延遲統計資料命令匯出百分位數分佈,同時透過 LATENCY 命令匯出累積延遲分佈 (長條圖)。

hash-max-listpack-entries

允許的值:0+

預設:512

類型:整數

可修改:是

變更生效:直接套用至叢集中所有節點。

要壓縮資料集的雜湊項目數目上限。

hash-max-listpack-value

允許的值:0+

預設:64

類型:整數

可修改:是

變更生效:直接套用至叢集中所有節點。

最大雜湊項目的臨界值,以便壓縮資料集。

zset-max-listpack-entries

允許的值:0+

預設:128

類型:整數

可修改:是

變更生效:直接套用至叢集中所有節點。

要壓縮資料集的雜湊有序集項目數目上限。

zset-max-listpack-value

允許的值:0+

預設:64

類型:整數

可修改:是

變更生效:直接套用至叢集中所有節點。

要壓縮資料集的雜湊有序集項目數目上限。

search-enabled

允許的值:yes, no

預設:no

類型:字串

可修改:是

變更生效:僅適用於新叢集。

最低引擎版本:7.1

設定為是時,它會啟用搜尋功能。

search-query-timeout-ms

允許的值:1 - 60,000

預設:10,000

類型:整數

可修改:是

變更生效:直接套用至叢集中所有節點。

最低引擎版本:7.1

允許執行搜尋查詢的時間上限,以毫秒為單位。

Redis 7 OSS 中變更的參數如下所示。

名稱 詳細資訊 描述
activerehashing

可修改:no。在 Redis OSS 7 中,預設會隱藏並啟用此參數。為了將其停用,您需要建立一個支援案例

「可修改」先前為「是」。

在 Redis 7 OSS 中移除的參數如下所示。

名稱 詳細資訊 描述
hash-max-ziplist-entries

允許的值:0+

預設:512

類型:整數

可修改:是

變更生效:直接套用至叢集中所有節點。

使用 listpack 而非 ziplist 來表示小雜湊編碼

hash-max-ziplist-value

允許的值:0+

預設:64

類型:整數

可修改:是

變更生效:直接套用至叢集中所有節點。

使用 listpack 而非 ziplist 來表示小雜湊編碼

zset-max-ziplist-entries

允許的值:0+

預設:128

類型:整數

可修改:是

變更生效:直接套用至叢集中所有節點。

使用 listpack 而非 ziplist 來表示小雜湊編碼。

zset-max-ziplist-value

允許的值:0+

預設:64

類型:整數

可修改:是

變更生效:直接套用至叢集中所有節點。

使用 listpack 而非 ziplist 來表示小雜湊編碼。

Redis OSS 6 參數

注意

在 Redis OSS引擎 6.2 版中,當引入 r6gd 節點系列以搭配 使用時資料分層,r6gd 節點類型僅支援 noevictionvolatile-lruallkeys-lru 最大記憶體政策。

參數群組系列: memorydb_redis6

在 Redis 6 OSS 中新增的參數如下所示。

名稱 詳細資訊 描述
maxmemory-policy

類型: STRING

允許的值:volatile-lru、allkeys-lru、volatile-lfu、allkeys-lfu、volatile-random、allkeys-random、volatile-ttl、noeviction

預設:新摘錄

到達記憶體用量上限時,針對鍵的移出政策。

如需詳細資訊,請參閱使用 Redis OSS 作為LRU快取 使用 Redis OSS作為LRU快取

list-compress-depth

類型: INTEGER

允許的值:0-

預設:0

壓縮深度是來自清單每一端的快速清單 (quicklist) 壓縮清單 (ziplist) 節點數量,這些節點會從壓縮中排除。清單的前端和尾端一律不會進行壓縮,以進行快速的推送及彈出操作。設定如下:
  • 0:停用所有壓縮。

  • 1:啟動壓縮,從第一個節點進入前端和尾端。

    [head]->node->node->...->node->[tail]

    除了 [head] 和 [tail] 之外的所有節點都會進行壓縮。

  • 2:啟動壓縮,從第二個節點進入前端和尾端。

    [head]->[next]->node->node->...->node->[prev]->[tail]

    [head]、[next]、[prev] 和 [tail] 不會進行壓縮。其他所有節點都會壓縮。

  • 其他等服務...

hll-sparse-max-bytes

類型: INTEGER

允許的值:1-16000

預設:3000

HyperLogLog 稀疏表示位元組限制。限制包含 16 位元組的標頭。 HyperLogLog 使用稀疏表示法超過此限制時,會將其轉換為密集表示法。

不建議使用大於 16000 的值,因為屆時密集表示可以更有效率的使用記憶體。

我們建議值約為 3000,以享有節省空間編碼的優點,而不會太慢PFADD,也就是使用稀疏編碼的 O(N)。當 CPU不是問題時,該值可以提高到 ~10000,但空間是,而且資料集由許多 HyperLogLogs 組成,其基數介於 0 - 15000 範圍內。

lfu-log-factor

類型: INTEGER

允許的值:1-

預設:10

用於遞增 eviction LFU 政策金鑰計數器的日誌因素。

lfu-decay-time

類型: INTEGER

允許的值:0-

預設:1

以分鐘為單位的時間,以遞減LFU用於驅逐政策的金鑰計數器。

active-defrag-max-scan-fields

類型: INTEGER

允許的值:1-1000000

預設:1000

在作用中重組期間,將從主字典掃描處理set/hash/zset/list的欄位數目上限。

active-defrag-threshold-upper

類型: INTEGER

允許值:1 到 100

預設:100

進行最大程度投入量所需要的最高分散百分比。

client-output-buffer-limit-pubsub-hard-limit

類型: INTEGER

允許的值:0-

預設:33554432

對於 Redis OSS 發佈/訂閱用戶端:如果用戶端的輸出緩衝區達到指定的位元組數,用戶端將會中斷連線。

client-output-buffer-limit-pubsub-soft-limit

類型: INTEGER

允許的值:0-

預設:8388608

對於 Redis OSS 發佈/訂閱用戶端:如果用戶端的輸出緩衝區達到指定的位元組數,用戶端將中斷連線,但前提是此條件仍存在 client-output-buffer-limit-pubsub-soft-seconds.

client-output-buffer-limit-pubsub-soft-seconds

類型: INTEGER

允許的值:0-

預設:60

對於 Redis OSS 發佈/訂閱用戶端:如果用戶端的輸出緩衝區保留在client-output-buffer-limit-pubsub-soft-limit位元組超過此秒數,用戶端將會中斷連線。

timeout

類型: INTEGER

允許的值:0,20-

預設:0

節點在逾時前等待的秒數。數值為:

  • 0 – 永遠不要中斷閒置用戶端的連線。

  • 1-19 – 無效值。

  • >=20 – 節點在中斷閒置用戶端連線之前等待的秒數。

notify-keyspace-events

類型: STRING

允許的值:NULL

預設: NULL

Redis OSS通知 Pub/Sub 用戶端的鍵空間事件。預設會停用所有通知。

maxmemory-samples

類型: INTEGER

允許的值:1-

預設:3

對於 least-recently-used (LRU)time-to-live (TTL)計算,此參數代表要檢查的金鑰範例大小。依預設,Redis 會OSS選擇 3 個金鑰,並使用至少最近使用過的金鑰。

slowlog-max-len

類型: INTEGER

允許的值:0-

預設:128

Redis OSS Slow Log 的長度上限。此長度沒有限制。請注意,它會耗用記憶體。您可以取回慢速日誌搭配 使用的記憶體 SLOWLOG RESET.

activerehashing

類型: STRING

允許的值:是、否

預設:是

主要雜湊資料表每秒修復十次;每個堆疊操作耗用 1 毫秒CPU的時間。

您可以在建立參數群組時設定此值。將新的參數群組指派給叢集時,此值在舊的及新的參數群組中都必須相同。

client-output-buffer-limit-normal-hard-limit

類型: INTEGER

允許的值:0-

預設:0

若用戶端的輸出緩衝區達到指定的位元組數,便會中斷用戶端連線。預設為零 (無硬式限制)。

client-output-buffer-limit-normal-soft-limit

類型: INTEGER

允許的值:0-

預設:0

若用戶端的輸出緩衝區達到指定的位元組數,便會中斷用戶端連線,但只有在此條件持續達 client-output-buffer-limit-normal-soft-seconds 時。預設為零 (無軟式限制)。

client-output-buffer-limit-normal-soft-seconds

類型: INTEGER

允許的值:0-

預設:0

若用戶端的輸出緩衝區維持在 client-output-buffer-limit-normal-soft-limit 位元組超過此秒數,便會中斷用戶端連線。預設為零 (無時間限制)。

tcp-keepalive

類型: INTEGER

允許的值:0-

預設:300

若將此設為非零值 (N),節點用戶端便會每 N 秒輪詢一次,確保仍然持續連線。使用預設設定的 0,便步會發生任何輪詢。

active-defrag-cycle-min

類型: INTEGER

允許值:1 到 75

預設:5

以CPU百分比為單位進行重組的最小努力。

stream-node-max-bytes

類型: INTEGER

允許的值:0-

預設:4096

串流資料結構是節點基數樹狀結構,它會在內部編碼多個項目。使用這個組態可指定基數樹狀結構中單一節點的最大大小 (以位元組為單位)。如果設為 0,則節點的大小沒有限制。

stream-node-max-entries

類型: INTEGER

允許的值:0-

預設:100

串流資料結構是節點基數樹狀結構,它會在內部編碼多個項目。使用此組態來指定在附加新串流項目時,切換至新節點之前,單一節點可包含的最大項目數。如果設定為 0,樹狀節點中的項目數量會無限。

lazyfree-lazy-eviction

類型: STRING

允許的值:是、否

預設:否

在 evictions 上執行非同步刪除。

active-defrag-ignore-bytes

類型: INTEGER

允許的值:1048576-

預設:104857600

啟動主動磁碟重組所需要的最低分散廢棄物數量。

lazyfree-lazy-expire

類型: STRING

允許的值:是、否

預設:否

在過期的金鑰上執行非同步刪除。

active-defrag-threshold-lower

類型: INTEGER

允許值:1 到 100

預設:10

啟動主動磁碟重組所需要的最低分散百分比。

active-defrag-cycle-max

類型: INTEGER

允許值:1 到 75

預設:75

以CPU百分比為單位進行重組的最大努力。

lazyfree-lazy-server-del

類型: STRING

允許的值:是、否

預設:否

針對更新數值的命令執行非同步刪除。

slowlog-log-slower-than

類型: INTEGER

允許的值:0-

預設:10000

為了讓 命令被 Redis OSSSlow Log功能記錄,執行時間上限,以毫秒為單位。請注意,負數會停用慢速日誌,而零值會強制記錄每個命令。

hash-max-ziplist-entries

類型: INTEGER

允許的值:0-

預設:512

決定用於雜湊的記憶體數量。少於指定項目數的雜湊會使用特別的編碼存放,以節省空間。

hash-max-ziplist-value

類型: INTEGER

允許的值:0-

預設:64

決定用於雜湊的記憶體數量。項目小於指定位元組數的雜湊會使用特別的編碼存放,以節省空間。

set-max-intset-entries

類型: INTEGER

允許的值:0-

預設:512

決定要用於特定類型組 (基數為 10,介於 64 位元帶正負號整數範圍內整數的字串) 的記憶體數量。這類少於指定項目數的組會使用特別的編碼存放,以節省空間。

zset-max-ziplist-entries

類型: INTEGER

允許的值:0-

預設:128

決定用於排序組的記憶體數量。少於指定元素數的排序組會使用特別的編碼存放,以節省空間。

zset-max-ziplist-value

類型: INTEGER

允許的值:0-

預設:64

決定用於排序組的記憶體數量。項目小於指定位元組數的排序組會使用特別的編碼存放,以節省空間。

tracking-table-max-keys

類型: INTEGER

允許的值:1-100000000

預設:1000000

為了協助用戶端快取,Redis OSS支援追蹤哪些用戶端已存取哪些金鑰。

追蹤的索引鍵有所修改時,會傳送失效訊息給所有用戶端,通知他們快取的值不再有效。此值可讓您指定此資料表的上限。

acllog-max-len

類型: INTEGER

允許的值:1-10000

預設:128

ACL 日誌中的項目數量上限。

active-expire-effort

類型: INTEGER

允許的值:1-10

預設:1

Redis OSS會刪除超過兩個機制存活時間的金鑰。一種機制是系統會存取一個索引鍵,並發現其過期。另一種機制則是定期任務對索引鍵進行取樣,而導致超過存留時間的索引鍵過期。此參數會定義 Redis OSS 用來使定期任務中的項目過期的努力量。

預設值 1 會嘗試避免有超過 10% 的過期索引鍵仍存在於記憶體中。也會嘗試避免佔用總記憶體的 25% 以上以及為系統增加延遲。您最多可以將此值增加 10,以增加使索引鍵過期花費的工作量。權衡會更高CPU,也可能更高延遲。除非您看到高記憶體用量,並且可以容忍CPU使用率增加,否則我們建議值為 1。

lazyfree-lazy-user-del

類型: STRING

允許的值:是、否

預設:否

指定DEL命令的預設行為是否與 作用相同UNLINK

activedefrag

類型: STRING

允許的值:是、否

預設:否

已啟用作用中記憶體重組。

maxclients

類型: INTEGER

允許的值:65000

預設:65000

一次可連線的用戶端數量上限。不可修改。

client-query-buffer-limit

類型: INTEGER

允許的值:1048576-1073741824

預設:1073741824

單一用戶端查詢緩衝區的大小上限。變更會立即發生。

proto-max-bulk-len

類型: INTEGER

允許的值:1048576-536870912

預設:536870912

單一元素請求的大小上限。變更會立即發生。

MemoryDB 節點類型特定參數

雖然大多數的參數都只有單一值,有些參數則可能會根據所使用的節點類型而有不同的值。下表顯示maxmemory每個節點類型的 預設值。maxmemory 的值為您在節點上可以用於資料及其他用途的位元組上限。

節點類型 Maxmemory
db.r7g.large 14037181030
db.r7g.xlarge 28261849702
db.r7g.2xlarge 56711183565
db.r7g.4xlarge 113609865216
db.r7g.8xlarge 225000375228
db.r7g.12xlarge 341206346547
db.r7g.16xlarge 450000750456
db.r6gd.xlarge 28261849702
db.r6gd.2xlarge 56711183565
db.r6gd.4xlarge 113609865216
db.r6gd.8xlarge 225000375228
db.r6g.large 14037181030
db.r6g.xlarge 28261849702
db.r6g.2xlarge 56711183565
db.r6g.4xlarge 113609865216
db.r6g.8xlarge 225000375228
db.r6g.12xlarge 341206346547
db.r6g.16xlarge 450000750456
db.t4g.small 1471026299
db.t4g.medium 3317862236
注意

所有 MemoryDB 執行個體類型都必須在 Amazon Virtual Private Cloud 中建立VPC。