存储大型复合项目(Valkey 和 Redis OSS) - Amazon ElastiCache
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

存储大型复合项目(Valkey 和 Redis OSS)

在某些情况下,应用程序可能会在 Valkey 或 Redis OSS 中存储大型复合项目(例如多 GB 哈希数据集)。建议不要这样做,因为这经常会导致 Valkey 或 Redis OSS 中出现性能问题。例如,客户端可以执行 HGETALL 命令来检索整个多 GB 哈希集合。这可能会给在客户端输出缓冲区中缓冲大型项目的 Valkey 或 Redis OSS 服务器带来巨大的内存压力。此外,对于集群模式下的槽迁移,ElastiCache 不迁移包含序列化大小超过 256 MB 的项目的槽。

为了解决大型项目问题,我们建议:

  • 将大型复合项目分解成多个小型项目。例如,将一个大型哈希集合分解成多个单独的键值字段,其键名架构恰当地反映了该集合,例如在键名中使用公共前缀来标识项目集合。如果您必须以原子方式访问同一集合中的多个字段,则可以使用 MGET 命令在同一个命令中检索多个键值。

  • 如果您评估了所有选项,但仍无法分解大型数据集,请尝试使用对集合中的部分数据而不是整个集合运行的命令。避免出现要求您以原子方式在同一命令中检索整个多 GB 集合的使用案例。一个示例是,在哈希集合上使用 HGET 或 HMGET 命令而不是使用 HGETALL 命令。