Valkey 和 Redis OSS 組態和限制 - Amazon ElastiCache

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

Valkey 和 Redis OSS 組態和限制

Valkey 和 Redis OSS 引擎各提供許多組態參數,其中有些可在 ElastiCache for Redis OSS 中修改,有些則無法修改以提供穩定的效能和可靠性。

無伺服器快取

對於無伺服器快取,不會使用參數群組,而且無法修改所有 Valkey 或 Redis OSS 組態。已備妥下列 Valkey 或 Redis OSS 參數:

名稱 詳細資訊 描述
acl-pubsub-default

allchannels

快取上 ACL 使用者的預設 pubsub 通道許可。
client-output-buffer-limit

normal 0 0 0

pubsub 32mb 8mb 60

一般用戶端沒有緩衝區限制。如果 PUB/SUB 用戶端違反 32MiB 待處理項目,或違反 8MiB 待處理項目達 60 秒,則將中斷連線。
client-query-buffer-limit 1 GiB 單一用戶端查詢緩衝區的大小上限。此外,用戶端不能發出超過 3,999 個引數的請求。
cluster-allow-pubsubshard-when-down yes 如此即使快取在部分無法運作的狀況下,仍能處理 pubsub 流量。
cluster-allow-reads-when-down yes 如此即使快取在部分無法運作的狀況下,仍能處理讀取流量。
cluster-enabled yes 所有無伺服器快取都已啟用叢集模式,如此就能以公開透明的方式在多個後端碎片之間分割其資料。所有位置都會以單一虛擬節點擁有的形式對用戶端呈現。
cluster-require-full-coverage no 當金鑰空間部分無法運作時 (也就是至少有一個雜湊位置無法存取),快取將會繼續針對仍涵蓋的金鑰空間部分接受查詢。整個金鑰空間在 cluster slots 中一律為單一虛擬節點「涵蓋」的狀態。
lua-time-limit

5000

Lua 指令碼的執行時間上限 (毫秒),在此時間過後 ElastiCache 便會採取動作來停止指令碼。

如果超過 lua-time-limit ,所有 Valkey 或 Redis OSS 命令可能會傳回格式為 ____-BUSY 的錯誤。由於此狀態可能會干擾許多基本的 Valkey 或 Redis OSS 操作,因此 ElastiCache 會先發出 SCRIPT KILL 命令。如果失敗,ElastiCache 將強制重新啟動 Valkey 或 Redis OSS。

maxclients 65000 一次可連線至快取的用戶端數量上限。進一步建立的連線不一定會成功。
maxmemory-policy volatile-lru 達到快取記憶體限制時,已設定 TTL 的項目會在評估最近最少使用 (LRU) 之後移出。
notify-keyspace-events (空白字串) 無伺服器快取目前不支援金鑰空間事件。
port

主要連接埠:6379

讀取連接埠:6380

無伺服器快取會公告兩個相同主機名稱的連接埠。主要連接埠允許寫入和讀取,而讀取連接埠則允許使用 READONLY 命令的較低延遲的最終一致讀取。
proto-max-bulk-len 512 MiB 單一元素請求的大小上限。
timeout 0 用戶端不會在特定閒置時間強制中斷連線,但可能會為了進行負載平衡,在穩定狀態期間中斷連線。

此外也設有下列限制:

名稱 詳細資訊 描述
每個快取的大小 5,000 GiB 每個無伺服器快取可儲存的資料量上限。
每個插槽的大小 32 GiB 單一 Valkey 或 Redis OSS 雜湊槽的大小上限。嘗試在單一 Valkey 或 Redis OSS 插槽上設定超過此數量資料的用戶端將觸發插槽上的移出政策,如果沒有可移出的金鑰, 將收到記憶體不足 (OOM) 錯誤。
每個快取的 ECPU 每秒 15,000,000 個 ECPU ElastiCache 處理單元 (ECPU) 指標。請求消耗的 ECPUs 數量取決於所花費的 vCPU 時間和傳輸的資料量。
每個插槽的 ECPU 30K - 90K ECPU/秒 使用 READONLY 連線從複本讀取時,每個插槽最多 30K ECPUs秒或 90K ECPUs/秒。
每個請求的引數數 3,999 每個請求的引數數目上限。每個請求傳送更多引數的用戶端將收到錯誤。
金鑰名稱長度 4 KiB 單一 Valkey 或 Redis OSS 金鑰或頻道名稱的大小上限。若用戶端參考的金鑰大於此值,則會收到錯誤。
Lua 指令碼大小 4 MiB 單一 Valkey 或 Redis OSS Lua 指令碼的大小上限。若嘗試載入的 Lua 指令碼大於此值,則會收到錯誤。

自行設計的叢集

對於自行設計的叢集,請參閱 Valkey 和 Redis OSS 參數 當中所述的組態參數預設值,並了解哪些可設定。預設值為一般建議,除非您的使用案例較為特殊,需要覆寫這些值。