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

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

Valkey 和 Redis OSS組態和限制

Valkey 和 Redis OSS引擎各提供許多組態參數,其中有些可在 ElastiCache 中修改,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 單一用戶端查詢緩衝區的大小上限。此外,用戶端無法發出包含超過 4,000 個引數的請求。
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 會先發出SCRIPTKILL命令。如果失敗, ElastiCache 會強制重新啟動 Valkey 或 Redis OSS。

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

主要連接埠:6379

讀取連接埠:6380

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

此外也設有下列限制:

名稱 詳細資訊 描述
金鑰名稱長度 4 KiB 單一 Valkey 或 Redis OSS金鑰或頻道名稱的大小上限。若用戶端參考的金鑰大於此值,則會收到錯誤。
Lua 指令碼大小 4 MiB 單一 Valkey 或 Redis OSS Lua 指令碼的大小上限。若嘗試載入的 Lua 指令碼大於此值,則會收到錯誤。
位置大小 32 GiB 單一 Valkey 或 Redis 雜OSS湊槽的大小上限。嘗試在單一 Valkey 或 Redis OSS插槽上設定超過此值的用戶端將觸發槽上的移出政策,而且如果沒有可移出的金鑰, 將收到記憶體不足 (OOM) 錯誤。

自行設計的叢集

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