

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

# 存储大型复合项目（Valkey 和 Redis OSS）
<a name="BestPractices.Clients.Redis.LargeItems"></a>

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

为了解决大型项目问题，我们建议：
+ 将大型复合项目分解成多个小型项目。例如，将一个大型哈希集合分解成多个单独的键值字段，其键名架构恰当地反映了该集合，例如在键名中使用公共前缀来标识项目集合。如果您必须以原子方式访问同一集合中的多个字段，则可以使用 MGET 命令在同一个命令中检索多个键值。
+ 如果您评估了所有选项，但仍无法分解大型数据集，请尝试使用对集合中的部分数据而不是整个集合运行的命令。避免出现要求您以原子方式在同一命令中检索整个多 GB 集合的使用案例。一个示例是，在哈希集合上使用 HGET 或 HMGET 命令而不是使用 HGETALL 命令。