儲存大型複合項目 (Valkey 和 Redis OSS) - Amazon ElastiCache

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

儲存大型複合項目 (Valkey 和 Redis OSS)

在某些情況下,應用程式可能會在 Valkey 或 Redis OSS 中存放大型複合項目 (例如多 GB 雜湊資料集)。這不是建議的做法,因為它通常會導致 Valkey 或 Redis OSS 的效能問題。例如,用戶端可能會執行 HGETALL 命令來擷取整個多 GB 雜湊集合。這可能會對 Valkey 或 Redis OSS 伺服器產生重大記憶體壓力,以緩衝用戶端輸出緩衝區中的大型項目。此外,對於叢集模式下的位置遷移,ElastiCache 不會遷移包含序列化大小大於 256 MB 之項目的位置。

為了解決大型項目的問題,以下是我們的建議做法:

  • 將大型複合項目分割成多個較小的項目。例如,將大型雜湊集合分割成個別的索引鍵-值欄位,且索引鍵名稱結構描述適當反映集合,例如,在索引鍵名稱中使用通用首碼來識別項目集合。如果您必須以原子方式存取同一集合中的多個欄位,您可以使用 MGET 命令在同一命令中擷取多個索引鍵-值。

  • 如果您評估了所有選項,但仍無法分割大型集合資料集,請嘗試使用對集合中的資料子集而非整個集合執行操作的命令。避免採用要求您在同一命令中以原子方式擷取整個多 GB 集合的使用案例。例如,在雜湊集合上使用 HGET 或 HMGET 命令,而非 HGETALL 命令。