自动分层存储

Auto Tiering 使您的数据能够跨越 RAM 和专用闪存。

Redis 企业软件 Redis 云

Redis Enterprise 的自动分层为用户提供了使用固态驱动器 (SSD) 的独特功能,以将数据库扩展到 DRAM 容量之外。 开发人员可以使用相同的 Redis API 构建需要大型数据集的应用程序。 与仅使用 DRAM 部署相比,使用 SSD 可以显著降低基础设施成本。

经常使用的数据(称为热数据)属于最快的内存级别,以提供实时用户体验。 访问频率较低的数据(称为暖数据)可以保存在稍慢的内存层中。 Redis Enterprise 的自动分层功能可在 DRAM 中维护热数据,将热数据保存在 SSD 中,并自动在层之间传输数据。

Redis Enterprise 的自动分层基于高性能存储引擎 (Speedb),该引擎管理使用 SSD 和 DRAM 作为 Redis Enterprise 集群中数据库的总可用内存的复杂性。此实施提供了每个数据库内核每秒高达 10k 次作的性能提升,使 Redis on Flash 的性能翻了一番。

与全 RAM 数据库一样,启用了 Auto Tiering 的数据库与现有的 Redis 应用程序兼容。

Redis CloudRedis Enterprise Software for Kubernetes 也支持自动分层。

使用案例

与 Auto Tiering 相关的优势取决于使用案例。

在以下情况下,自动分层是理想的选择:

  • 工作集明显小于您的数据集(高 RAM 命中率)
  • 平均密钥大小小于平均值大小(所有密钥名称都存储在 RAM 中)
  • 最新数据是使用最频繁的(高 RAM 命中率)

不建议将 Auto Tiering 用于:

  • 长键名(所有键名都存储在 RAM 中)
  • 广泛的访问模式(任何值都可以提取到 RAM 中)
  • 大型工作集(工作集存储在 RAM 中)
  • 频繁移动的数据(过于频繁地移入和移出 RAM 会影响性能)

Auto Tiering 不用于持久性存储。Redis Enterprise Software 数据库持久存储和临时存储应位于不同的磁盘上,可以是本地磁盘,也可以是附加磁盘。

我的数据在哪里?

使用 Auto Tiering 时,RAM 存储会占用:

  • 所有键(名称)
  • 关键索引
  • 字典
  • 热数据(工作集)

所有数据都通过 RAM 访问。如果访问 flash memory 中的值,则它将成为工作集的一部分并移动到 RAM。这些值称为 “热数据”。

非活动或不经常访问的数据称为“暖数据”,并存储在闪存中。当 RAM 中需要更多空间时,暖数据将从 RAM 移动到闪存。

注意:
将 Auto Tiering 与 RediSearch 结合使用时,请务必注意 RediSearch 索引也存储在 RAM 中。

RAM 闪存比

Redis Enterprise Software 允许您独立配置和调整每个数据库的 RAM 与 Flash 比率,从而优化特定使用案例的性能。 虽然这是一项在线作,不需要数据库停机,但建议在维护时段内执行,因为数据可能会在层 (RAM <-> Flash) 之间移动。

RAM 限制不能小于总内存的 10%。我们建议您在 RAM 中保留至少 20% 的所有值。请勿将 RAM 限制设置为 100%。

闪存

实施 Auto Tiering 需要围绕内存和大小进行预先规划。Auto Tiering 的注意事项和要求包括:

  • 闪存必须在本地连接。不支持使用网络连接存储 (NAS)、存储区域网络 (SAN) 或 AWS Elastic Block Storage (EBS) 等解决方案。
  • 闪存必须专用于 Auto Tiering,并且不能与数据库的其他部分(如持久性、二进制文件或持久性)共享。
  • 为了获得最佳性能,SSD 应基于 NVMe,但也可以使用 SATA。
  • 可用闪存空间必须大于或等于总数据库大小 (RAM+Flash)。额外的空间考虑了写入缓冲区和写入放大
注意:
Redis Enterprise Software 数据库持久存储和临时存储应位于不同的磁盘上,可以是本地磁盘还是附加磁盘。

满足这些要求后,您可以在启用 Auto Tiering 的情况下创建和管理这两个数据库,并且 all-RAM 数据库。

当您开始规划在生产环境中部署启用了 Auto Tiering 的数据库时, 我们建议与 Redis 技术团队密切合作,以进行大小调整和性能。

云环境

在云环境中运行时:

  • 闪存位于云实例的临时 SSD 上(例如 AWS i4i 实例的本地 NVMe 以及 Azure Lsv2 和 Lsv3 系列)。
  • 持久性数据库存储需要网络连接(例如,AWS EBS for AWS)。
注意:
我们特别推荐“Storage Optimized I4i - 高 I/O 实例”,因为 NVMe 的闪存性能非常出色。

本地环境

当您开始规划在生产环境中部署 Auto Tiering 时,我们建议您与 Redis 技术团队密切合作,以进行大小调整和性能。

与其他环境相比,本地环境支持更多的部署选项,例如:

注意:
为双活分布式数据库启用 Auto Tiering 需要先验证并获得 Redis 技术团队的批准。
警告:
不支持在网络连接存储 (NAS)、存储区域网络 (SAN) 或本地 HDD 驱动器上运行 Auto Tiering。

后续步骤

为本页评分
返回顶部 ↑