本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
存储大型复合项目(Valkey 和 Redis OSS)
在某些情况下,应用程序可能会在 Valkey 或 Redis OSS 中存储大型复合项目(例如多 GB 哈希数据集)。建议不要这样做,因为这经常会导致 Valkey 或 Redis OSS 中出现性能问题。例如,客户端可以执行 HGETALL 命令来检索整个多 GB 哈希集合。这可能会给在客户端输出缓冲区中缓冲大型项目的 Valkey 或 Redis OSS 服务器带来巨大的内存压力。此外,对于集群模式下的槽迁移,ElastiCache 不迁移包含序列化大小超过 256 MB 的项目的槽。
为了解决大型项目问题,我们建议:
将大型复合项目分解成多个小型项目。例如,将一个大型哈希集合分解成多个单独的键值字段,其键名架构恰当地反映了该集合,例如在键名中使用公共前缀来标识项目集合。如果您必须以原子方式访问同一集合中的多个字段,则可以使用 MGET 命令在同一个命令中检索多个键值。
如果您评估了所有选项,但仍无法分解大型数据集,请尝试使用对集合中的部分数据而不是整个集合运行的命令。避免出现要求您以原子方式在同一命令中检索整个多 GB 集合的使用案例。一个示例是,在哈希集合上使用 HGET 或 HMGET 命令而不是使用 HGETALL 命令。