分區和數據分配

*此內容是使用 AI(Beta 測試版)翻譯,可能含有錯誤。若要以英文檢視此頁面,請按一下這裡

隨著 MemoryStoreHashMap 數據結構的發布,Roblox 移除了對各個數據結構的所有現有限制,並用一個單一的全局“每個分區”限流限制取而代之。具體的限制根據內部值和自動分區過程如何分配您的數據而波動,但一般來說,在限流之前允許達到更高的使用量,特別是對於哈希映射來說。這個新限制使得在所有數據結構中靈活使用內存商店成為可能。

分區

MemoryStores API 在 分區 上存儲數據,這些分區僅是存儲的子集。每當您將項目寫入內存商店時,該項目會存儲在恰好一個分區上。分區完全由 MemoryStores API 管理;您不需要自己管理它們。

分區分配

分區存儲取決於存儲項目的數據結構。對於排序映射和隊列,每個數據結構被分配到一個單獨的分區。

例如,考慮一個遊樂場遊戲,有一個名為 PlayerScores 的排序映射和一個名為 PlayerLine 的隊列,隊列中有玩家在等待參加遊戲:

與排序映射和隊列不同,哈希映射被分配到多個分區,數據會自動分佈在這些分區中。如果您添加了一個名為 Prizes 的哈希映射,分區可能看起來是這樣的:

注意哈希映射存在於所有分區中,每個分區都有一些子集項目。

限制

每個分區的限制允許所有數據結構有更高的吞吐量。這也對哈希映射有利,因為它們分佈在所有分區中。

例如,考慮一個每個分區限制為每分鐘 50,000 次請求 (RPM) 的示例:

  • 在最佳情況下,排序映射和隊列的限制為 50,000 RPM,因為每個只位於一個分區。
  • 請求哈希映射分散在項目鍵上,而這些鍵本身又分佈在分區中,因此哈希映射在限流之前可以達到更高的有效限制,假設請求分散在許多項目鍵上,這個限制通常是其他數據結構的多倍。
  • 儘管哈希映射可以通過分散請求在分區中來實現更高的整體吞吐量,但單個項目鍵仍然受到速率限制,以維持系統穩定性。如果大多數流量針對單個項目鍵,該鍵可能仍會受到限流。
  • 為了有效擴展並避免這些每鍵限制,實施鍵分片。均勻地在多個項目鍵之間分散讀寫操作,以減少瓶頸並保持平穩的性能。

因此,如果您不需要排序或者“先進先出”功能,哈希映射通常是內存商店數據結構的最佳選擇。欲了解更多信息,請參見 最佳實踐

©2026 Roblox Corporation、Roblox、Roblox 標誌及 Powering Imagination 是我們在美國及其他國家地區的部分註冊與未註冊商標。