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

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

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

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

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

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

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