本頁說明 Memorystore for Valkey 適用的 maxmemory 政策和其他設定。
如要瞭解如何修改這個頁面列出的設定,請參閱「設定執行個體」。
Maxmemory 政策
當執行個體的記憶體已滿,但有新的寫入作業要執行時,Valkey 會根據執行個體的 Maxmemory 政策撤銷金鑰,以便釋出空間來執行寫入作業。Memorystore for Valkey 的預設 maxmemory 政策為 volatile-lru
。您也可以使用下列其中一項 maxmemory 政策:
noeviction
:當例項達到 maxmemory 時,會傳回錯誤。不會覆寫或逐出任何資料。allkeys-lfu
:從整個鍵集移除最少使用的 (LFU) 金鑰。allkeys-lru
:從整個金鑰集逐出最近最少使用的 (LRU) 金鑰。volatile-lfu
:清除設有 TTL (存留時間) 到期時間的最少使用金鑰。volatile-lru
:撤銷設定存留時間到期的最少最近使用 (LRU) 金鑰。allkeys-random
:從整個鍵空間中逐出隨機鍵。volatile-random
:從設有 TTL 到期時間的鍵中,隨機逐出鍵。volatile-ttl
:從設有存留時間到期日的金鑰中,移除存留時間最短的金鑰。
可修改的設定參數
建立或更新 Memorystore for Valkey 執行個體時,可以修改下列參數。
參數 | 說明 | 可接受的值 |
---|---|---|
maxmemory-clients | 這項設定可讓使用者控管用戶端的記憶體用量上限。 一般/發布/訂閱用戶端的記憶體用量總計。如果達到上限,系統會清除記憶體用量最高的用戶端。 |
可接受的值為介於 0% 和 100% 之間的整數百分比值。代表用戶端儲存空間的執行個體 maxmemory 百分比上限。預設值取決於節點類型。詳情請參閱「節點特性」。 |
maxmemory | 這項可調整的限制是以 GB 為單位。如果達到這項限制,您的移除政策就會生效。您可以在個別節點層級設定 maxmemory 限制,但這項設定會套用至所有節點。舉例來說,假設您有一個包含 3 個節點的執行個體,使用 58 GB 的 highmem-xlarge
節點類型,並想將 maxmemory 設為執行個體總容量的 90%。為此,請將 maxmemory 設為 52.2 GB,也就是節點容量的 90%。這項設定會套用至所有節點,將執行個體 maxmemory 總限制設為 90%。如要進一步瞭解預設保留的額外負荷,請參閱「鍵空間容量和保留的額外負荷」。 |
執行個體的 Maxmemory 限制。 支援的單位如下: b (預設)k kb m mb g gb |
maxmemory-policy | 指定執行個體資料達到 maxmemory 限制時,Valkey 的行為。如要進一步瞭解各項政策,請參閱
Maxmemory 政策
。
|
noeviction allkeys-lru volatile-lru (預設)allkeys-random volatile-random volatile-ttl volatile-lfu allkeys-lfu |
notify-keyspace-events | 允許用戶端訂閱特定鍵空間事件的通知。 |
"" 沒有事件 (預設) K 使用 __keyspace@<db>__ 前置字元發布的鍵空間事件。 E Keyevent 事件,發布時會加上 __keyevent@<db>__ 前置字元。 g 一般指令 (非特定類型),例如 DEL、EXPIRE 或 RENAME $ 字串指令 l 清單指令 s 設定指令 h 雜湊指令 z 排序集指令 x 過期事件 (每次金鑰過期時產生的事件) e 逐出事件 (金鑰因 maxmemory 而遭逐出時產生的事件) A g$lshzxe 的別名,因此「AKE」字串代表所有事件。 |
slowlog-log-slower-than | 可讓您設定慢速記錄。指定執行時間門檻 (以微秒為單位)。只要指令超過這個門檻,就會新增至慢速記錄。 | 預設值為 10000。 如果值為零,系統會強制記錄每個指令。而值為 -1 則會停用慢速記錄。系統會拒絕任何其他負值。 |
maxclients | 可讓您設定執行個體的 maxclients 設定。如要瞭解執行個體的用戶端上限和預設值,請參閱「用戶端上限」。 | 預設值取決於節點類型。詳情請參閱「節點特性」。 |
資料庫 | 可設定執行個體的資料庫設定。Memorystore for Valkey 僅支援已停用叢集模式的執行個體使用這個參數。 | 預設值為 16 個資料庫。最多可設定 100 個資料庫。 |