存放大型复合物品(Valkey 和 RedisOSS) - 亚马逊 ElastiCache

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

存放大型复合物品(Valkey 和 RedisOSS)

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

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

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

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