本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
数据分层
使用 r6gd 系列节点类型的集群的数据在内存和本地SSD(固态驱动器)存储之间分层。数据分层为Valkey和Redis OSS 工作负载提供了一种新的性价比选项,它除了在内存中存储数据外,还在每个群集节点中使用成本较低的固态硬盘 (SSDs)。类似于其他节点类型,写入 r6gd 节点的数据持久存储在多可用区事务日志中。数据分层非常适合定期访问其总数据集 20% 的工作负载,也适用于在访问数据时可以容忍额外延迟的应用程序。SSD
对于启用了数据分层功能的集群,MemoryDB 会监控集群所存储每个项目的最近访问时间。当可用内存 (DRAM) 被完全消耗时,MemoryDB 使用最近最少使用的 (LRU) 算法将不经常访问的项目自动从内存移动到。SSD随后访问上的SSD数据时,MemoryDB 会在处理请求之前自动异步将其移回内存。如果您的工作负载只会经常访问部分数据,则数据分层将是经济高效地扩缩容量的极佳方法。
请注意,使用数据分层时,密钥本身始终保留在内存中,而LRU控制值在内存与磁盘上的位置。通常,在使用数据分层时,我们建议您的键大小小于值。
数据分层旨在将对应用程序工作负载的性能影响降至最低。例如,假设字符串值为 500 字节,与读取内存中数据的请求SSD相比,对存储的数据的读取请求通常会有 450 微秒的延迟。
使用最大的数据分层节点大小 (db.r6gd.8xlarge),您可以在单个 500 个节点的集群TBs中存储多达 500 个(使用 1 个只读副本时为 250 TB)。对于数据分层,MemoryDB 为每个节点预留 (DRAM) 内存的 19% 用于非数据用途。数据分层与 MemoryDB 支持的所有 Valkey 和 Redis OSS 命令以及数据结构兼容。使用此功能无需任何客户端更改。