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

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

存储大型复合项目

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

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

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

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