自动分层存储
突破 DRAM 限制,扩展 Redis 企业版数据库
Redis 默认使用 DRAM 存储数据,前提是数据能适配可用内存。然而,DRAM 容量有限且成本高昂,这对依赖大规模数据集的应用(如欺诈检测、用户画像管理和网络安全)构成了挑战。
Redis 企业版的自动分层存储支持使用固态硬盘(SSD)扩展数据库容量,突破 DRAM 限制,使您可以继续使用相同的 Redis API 构建大数据应用。与仅使用 DRAM 的方案相比,引入 SSD 可将基础设施成本降低多达 70%。
该功能基于高性能存储引擎 Speedb,能够智能管理 SSD 与 DRAM 之间的数据分配,使 SSD 和 DRAM 共同构成 Redis 企业版集群的可用内存。该方案可提升数据库每核高达 10K 次操作/秒的处理能力,使 Redis on Flash 的性能提升一倍。
工作原理
应用数据具有生命周期。热数据(即频繁访问的数据)应存储在最快的内存层,以提供实时用户体验。而温数据(访问频率较低的数据)可以存放在稍慢的存储层。
在大多数应用中,只有一小部分数据是热数据,大量数据通常处于备用状态,等待调用。然而,手动在不同存储层之间移动数据十分复杂。自动分层存储让热数据保持在 DRAM 中,温数据存储在 SSD 中,并能自动在存储层之间转移数据。
通过结合 Redis 的灵活性与 SSD 的大容量,Redis 企业版大幅增强了实时数据管理能力,使应用在处理海量数据时,依然能够保持更高的性能和更快的响应速度。
何时使用自动分层存储
当需要在处理大规模数据的同时保持高速度的数据处理能力时,自动分层存储是理想选择。将所有数据存储在 DRAM 中的成本较高,尤其是在同时处理热数据和温数据的情况下。
如何区分热数据和温数据?
- 热数据:由频繁活跃的用户生成,例如经常购买商品的客户。
- 温数据:由暂时不活跃的用户生成,例如已有账户但长时间未登录的客户,他们随时可能重新访问应用。你需要保留这些数据,但对访问速度的要求不如热数据高。
当业务需求快速变化,例如过去的用户回归并进行新交易时,企业级应用仍需高速响应。在这种情况下,自动分层存储会自动调整数据存储策略:将需要的活跃数据迁移至 DRAM 进行实时处理,并将未使用的数据存入 SSD 以备后用。
弹性内存管理,降低总成本
Redis 企业版的自动分层存储 允许开发者动态调整 DRAM 与 SSD 的比例,而无需更改数据库的整体内存配额。这种方式保证了存储空间的最佳利用:热数据存储在 DRAM,温数据存储在 SSD,以降低整体成本(TCO)。
- 当数据集较大且内存存储成本过高,可以利用 SSD 存储低频访问的数据,从而优化 DRAM 资源,实现高吞吐量和低延迟。
当应用需要更高性能、更快吞吐量或更低延迟,可以增加 DRAM 配置,以在工作集中存储更多热数据,从而提升应用表现。
Redis企业版
将更多设想变为现实