一般性问题
问:什么是 Amazon MemoryDB Valkey 和 Redis OSS?
答:Amazon MemoryDB Valkey 和 Redis OSS 是一项兼容 Valkey 和 Redis、可实现数据持久存储的内存数据库服务,可提供超快的性能。借助 MemoryDB,您可以为现代应用程序(如使用微服务架构构建的应用程序)实现微秒级读取延迟、不超过 10 毫秒的写入延迟、高吞吐量和多可用区持久性。这些应用程序需要低延迟、高可扩展性,并使用 Valkey 和 Redis OSS 灵活的数据结构和 API 让开发过程既敏捷又轻松。MemoryDB 将整个数据集存储在内存中,并利用分布式事务日志来提供内存速度以及数据持久性、一致性和可恢复性。您可以将 MemoryDB 用作完全托管的主数据库,使您无需单独管理缓存、持久数据库或所需的底层基础设施即可构建高性能应用程序。
问:如何开始使用 MemoryDB?
答:首先,您可以使用 Amazon Web Services 管理控制台、命令行界面 (CLI) 或软件开发工具包 (SDK) 来创建新的 MemoryDB 集群。要在控制台中创建 MemoryDB 集群,请登录并导航到 Amazon MemoryDB for Valkey 和 Redis OSS。在此处,选择“开始使用”,然后选择“创建新集群”。 有关更详细的步骤以及如何开始使用 CLI 的信息,请参阅 MemoryDB 文档。
问:MemoryDB 是否与 Valkey 和 Redis OSS 兼容?
答:是的。MemoryDB 保持与开源 Valkey 和 Redis OSS 的兼容性,并支持您熟悉的同一组 Valkey 和 Redis OSS 数据类型、参数和命令。这意味着您目前已经在 Valkey 和 Redis OSS 上使用的应用程序代码、客户端和工具都可以用于 MemoryDB。MemoryDB 支持所有 Valkey 和 Redis OSS 数据类型,例如字符串、列表、集合、哈希、排序集、超级日志、位图和流。此外,MemoryDB 还支持 200 多个 Valkey 和 Redis OSS 命令,但 Valkey 和 Redis OSS 管理员命令除外,因为 MemoryDB 会为您管理集群。
问:MemoryDB 支持哪些 Valkey 和 Redis OSS 版本?
答:有关 MemoryDB 支持的 Valkey 和 Redis OSS 版本的信息,请访问 MemoryDB 文档。
问:什么是 MemoryDB 集群?
答:MemoryDB 集群是服务于单个数据集的一个或多个节点的集合。MemoryDB 数据集被划分为多个分片,每个分片都有一个主节点和最多 5 个可选的副本节点。主节点为读取和写入请求服务,而副本节点仅为读取请求服务。主节点可以故障转移到副本节点,从而将该副本节点升级为该分片的新主节点。有关更多信息,请访问 MemoryDB 文档。
问:MemoryDB 和 Amazon ElastiCache for Valkey 和 Redis OSS 的适用场合?
答:MemoryDB for Valkey 和 Redis OSS 是一种持久的内存数据库,适用于需要超快速度且与 Valkey 和 Redis OSS 兼容的主数据库的工作负载。如果您的工作负载需要具有超快性能(微秒级读取延迟和不到 10 毫秒写入延迟)的持久数据库,则应考虑使用 MemoryDB。如果您想通过持久的主数据库,使用 Valkey 和 Redis OSS 数据结构和 API 来构建应用程序,MemoryDB 也可能非常适合。最后,您应该考虑使用 MemoryDB 来简化应用程序架构并降低成本,方法是使用缓存而不是数据库,以提高持久性和性能。
ElastiCache for Valkey 和 Redis OSS 是一项服务,通常用于使用 Valkey 和 Redis OSS 缓存来自其他数据库和数据存储的数据。对于希望使用现有主数据库或数据存储(微秒级读写性能)加快数据访问速度的工作负载,您应该考虑使用 ElastiCache for Valkey 和 Redis OSS 对其进行缓存。对于希望使用 Valkey 和 Redis OSS 数据结构和 API 访问存储在主数据库或数据存储中的数据的用例,也应该考虑使用 ElastiCache for Valkey 和 Redis OSS。
问:MemoryDB 的可用性如何?
答:请参阅服务等级协议 (SLA)。
问:当前的服务限制和配额是多少?
答:有关当前限制和配额的信息,请参阅 MemoryDB 文档。
性能和持久性
问:MemoryDB 可以实现什么样的延迟和吞吐量?
答:MemoryDB 的吞吐量和延迟因节点类型、负载大小和客户端连接数量而异。MemoryDB 可在集群分片的主节点上提供微秒级读取延迟、不超过 10 毫秒的写入延迟和先写后读延迟。MemoryDB 每秒最多可支持 39 万个读取请求和 10 万个写入请求,而且每个节点可支持高达 1.3 GB/s 的读取吞吐量和 100 MB/s 的写入吞吐量(基于对只读和只写工作负载的内部测试)。MemoryDB 集群将数据分片到一个或多个节点,使您能够向集群添加更多分片或副本节点以增加总吞吐量。
问:MemoryDB 如何持久存储我的数据?
答:MemoryDB 将整个数据集存储在内存中,并使用分布式多可用区事务日志来提供数据持久性、一致性和可恢复性。通过跨多个可用区存储数据,MemoryDB 可以快速恢复和重启数据库。通过将数据存储在内存中,MemoryDB 可以提供超快的性能和高吞吐量。
问:MemoryDB 的持久性功能与开源 Valkey 和 Redis OSS 的仅附加文件 (AOF) 有何不同?
答:MemoryDB 利用分布式事务日志来持久存储数据。通过跨多个可用区存储数据,MemoryDB 可以快速恢复和重启数据库。此外,MemoryDB 可为副本节点提供最终一致性,并在主节点上提供一致性读取。
开源 Valkey 和 Redis OSS 包括可选的仅追加文件 (AOF) 功能,该功能可将数据保存在主节点磁盘上的文件中以实现持久性。但是,由于 AOF 将数据本地存储在单个可用区的主节点上,因此存在数据丢失的风险。此外,如果某个节点发生故障,副本节点也可能会出现一致性问题。
问:MemoryDB 是否支持高可用性?
答:是的,MemoryDB 支持高可用性。您可以创建具有多可用区可用性的 MemoryDB 集群,不同可用区最多具有 5 个副本节点。当主节点发生故障时,MemoryDB 会自动进行故障转移,将其中一个副本节点提升为新的主节点并将写入流量定向到该副本节点。此外,MemoryDB 还会利用分布式事务日志来确保副本上的数据保持最新,即使在主节点发生故障时也是如此。对于计划外停机,故障转移通常在 10 秒内发生,而对于计划内停机,故障转移通常在 200 毫秒内发生。
MemoryDB 使用分布式事务日志持久存储在数据库恢复、重启、故障转移以及主节点和副本节点之间实现最终一致性期间写入数据库的数据。
问:MemoryDB 的一致性与开源 Valkey 和 Redis OSS 有何不同?
答:开源 Valkey 和 Redis OSS 允许在每个分片的主节点上进行写入和强一致性读取,并允许从只读副本节点进行最终一致性读取。如果主节点发生故障,这些一致性属性将无法得到保证,因为写入操作可能会在故障转移期间丢失,从而违反一致性模型。
MemoryDB 的一致性模型与开源 Valkey 和 Redis OSS 类似。但是,在 MemoryDB 中,数据不会在故障转移期间丢失,因此无论节点是否发生故障,客户端都可以从主节点读取写入数据。只有成功保存在多可用区事务日志中的数据才可见。副本节点最终仍保持一致,且延迟指标将发布到 Amazon CloudWatch。
数据摄取和查询
问:如何向 MemoryDB 写入数据和从中读取数据?
答:要向 MemoryDB 集群写入数据和从中读取数据,请使用所支持的 Valkey 和 Redis OSS 客户端之一连接到集群。有关支持的 Valkey 和 Redis OSS 客户端的列表,请参阅 Valkey 和 Redis OSS 文档。有关如何使用 Valkey 和 Redis OSS 客户端连接到 MemoryDB 集群的说明,请参阅 MemoryDB 文档。
硬件、扩缩和维护
问:使用 MemoryDB最大可以创建多大的集群?
答:您可以创建一个最多包含 500 个节点的 MemoryDB 集群。假设您有250个主节点,每个主节点都有一个副本以实现高可用性(总共 500 个节点),那么将提供约 100 TB 的最大内存存储容量。
问:我能否调整 MemoryDB 集群的大小?
答:能,您可以横向和纵向调整 MemoryDB 集群的大小。您可以通过添加或移除节点来横向扩缩集群。您可以选择添加分片以将数据集分布到更多分片,还可以向每个分片添加额外的副本节点以提高可用性和读取吞吐量。您还可以移除分片和副本节点以缩减集群。此外,您也可以通过更改节点类型来纵向扩展集群,这会更改每个节点的内存和 CPU 资源。在横向和纵向调整大小操作期间,您的集群会继续保持在线状态并处理读取和写入请求。
问:如何更新我的 MemoryDB 集群?
答:MemoryDB 让您可以轻松维护和更新集群,并提供两种不同的集群维护流程。首先,对于某些强制性更新,MemoryDB 会在您指定的维护时段内自动修补集群。其次,对于某些更新,MemoryDB 使用服务更新,您可以在将来的维护时段内随时或计划应用这些更新。某些服务更新会在特定日期之后自动安排在维护时段内。集群更新有助于增强集群的安全性、可靠性和运行性能,而且您的集群会继续保持在线状态并处理读取和写入请求。有关集群维护的更多信息,请参阅 MemoryDB 文档。
备份和还原
问:我能否备份 MemoryDB 集群?
答:能,您可以创建快照来备份 MemoryDB 集群的数据和元数据。您可以手动创建快照,也可以使用 MemoryDB 的自动快照计划程序在每天指定的时间拍摄新快照。您可以选择快照创建后最多保留 35 天,也可以选择将其保留在 MemoryDB。快照存储在 Amazon S3 中,Amazon S3 的耐久性为 99.99999999%(11 个 9)。此外,您也可以选择在删除集群时拍摄集群的最终快照。此外,您还可以将 MemoryDB 快照从服务导出到您的 Amazon S3 存储桶中。有关快照的更多信息,请参阅 MemoryDB 文档。
问:我能否从快照还原 MemoryDB 集群?
答:能,您可以在创建新的 MemoryDB 集群时从快照还原 MemoryDB 集群。
问:我能否从 Valkey 和 Redis OSS RDB 文件中还原 MemoryDB 集群?
答:能,您可以从 Valkey 和 Redis OSS RDB 文件还原 MemoryDB 集群。您可以在创建新的 MemoryDB 集群时指定要从中还原的 RDB 文件。
问:我能否将数据从 ElastiCache for Valkey 和 Redis OSS 迁移到 MemoryDB 集群?
答:能,您可以将数据从 ElastiCache for Valkey 和 Redis OSS 迁移到 MemoryDB。首先,创建 ElastiCache for Valkey 和 Redis OSS 集群的快照,然后将其导出到 S3 存储桶中。接下来,创建一个新的 MemoryDB 集群并指定要从中还原的备份。MemoryDB 将使用快照中的数据和 Valkey 和 Redis OSS 元数据创建一个新集群。有关将数据从 ElastiCache for Valkey 和 Redis OSS 迁移到 MemoryDB 的更多信息,请参阅 MemoryDB 文档。
指标
问:MemoryDB 是否会为我的集群提供运行和性能指标?
答:是的,MemoryDB 会为您的集群提供运行和性能指标。MemoryDB 有 30 多个 CloudWatch 指标,您可以在 MemoryDB 控制台中查看它们。有关 CloudWatch 指标和 MemoryDB 的更多信息,请参阅 MemoryDB 文档。
安全性与合规性
问:MemoryDB 是否会加密我的数据?
答:是的,MemoryDB 支持对静态和传输中的数据加密。对于静态加密,您可以使用 Amazon Key Management Service 客户托管密钥 (CMK) 或 MemoryDB 提供的密钥。使用适用于 MemoryDB 集群的 Graviton2 实例时,将使用始终开启的 256 位 DRAM 加密在内存中加密您的数据。
问:如何为 MemoryDB 集群配置身份验证和授权?
答:MemoryDB 使用 Valkey 和 Redis OSS 访问控制列表 (ACL) 来控制集群的身份验证和授权。通过 ACL,您可以为同一集群中的不同用户定义不同的权限。ACL 是一个或多个用户的集合。每个用户都有一个密码和访问字符串,用于授予对 Valkey 和 Redis OSS 命令和数据的访问权限。要了解有关 MemoryDB 中的 ACL 的更多信息,请参阅 MemoryDB 文档。
问:我能否在 VPC 中使用 MemoryDB?
答:能,所有 MemoryDB 集群都必须在 VPC 中启动。
问:MemoryDB 满足哪些合规性认证要求?
答:我们将继续支持更多的合规性认证。 有关合规认证情况的最新信息,请参见此处。
问:我是否可以获取通过我的账户发起的 Amazon MemoryDB for Valkey 和 Redis OSS API 调用的历史记录,用于安全分析和运营故障排除?
答:是的。要获取所有通过您的账户发起的 Amazon MemoryDB API 调用的历史记录,只需在亚马逊云科技管理控制台中打开 CloudTrail 即可。有关更多信息,请访问 CloudTrail 主页。
成本优化
问:什么是 Amazon MemoryDB 的预留节点?
MemoryDB 提供预留节点,可让您在按需节点价格的基础上节省多达 55% 的费用,以此换取一年或三年期的使用承诺。预留节点是对 MemoryDB 按需节点的补充,为协助企业降低成本提供了灵活性。MemoryDB 提供三种预留实例付款选项 — 不预付、部分预付和全额预付 — 您可以通过这些选项平衡您的预付款与您的有效小时价格。
问:Amazon MemoryDB 预留节点的大小灵活性如何发挥作用?
MemoryDB 预留节点在节点系列和 Amazon Web Services 区域内提供大小灵活性。这意味着预留节点折扣费率将自动应用于同一节点系列中所有大小的使用量。例如,如果您购买 r6g.xlarge 预留节点并需要扩展到更大的节点 r6g.2xlarge,您的预留节点折扣费率将自动应用于同一 Amazon Web Services 区域中 r6g.2xlarge 节点的 50% 使用量。此大小灵活性功能将减少管理预留节点所需的时间,而且由于您不再受特定数据库节点大小的限制,即使容量需求发生变化,您也可以从折扣中获得最大收益。
问:Amazon MemoryDB 预留节点的费用是多少?
MemoryDB 预留节点的定价基于节点类型、期限(一年或三年)、付款选项(不预付、部分预付和全额预付)以及 Amazon Web Services 区域。请注意,预留节点价格不包括数据写入或快照存储费用。有关更多详细信息,请参阅 MemoryDB 定价页面。
问:Amazon MemoryDB 预留节点支持哪些节点系列?
MemoryDB 为经过内存优化的 R6g 节点提供预留节点。