使用 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,这会产生不必要的开销。
参考资料
请参阅自动分层功能文档。