使用 Redis on Flash 存储大型 Key 的要求

最后更新时间:2024 年 4 月 18 日

目标

了解在使用 Redis on Flash 时对值大小的限制。RAM 百分比是否需要大于最大单个值的大小?例如,在以下场景中

  • 内存限制 = 10 GB
  • RoF = RAM 中占用 20% (2GB)
  • Key 值大小 > 2GB (例如流)

Redis 如何从磁盘中获取值并传输到 RAM 中?

解决方案

就值大小而言,使自动分层成为可行解决方案的要求是

  • 所有 key 都需要能够放入 RAM 中
  • 从 Flash 存储中检索到的任何 key 都需要能够放入 RAM 中

这意味着配置的 RAM 需要大于数据集中任何 key 的最大值。此外,RAM 还应有足够的空间来存储所有 key 及其开销。

启用 Redis on Flash 后存储大型键值对(或使用大型 Redis Streams)通常是一种反模式。如果仅仅为了设置哈希中的一对,就必须从 Flash 中拉取整个 1MB 的 HASH,这会产生不必要的开销。 

参考资料

请参阅自动分层功能文档。