本页介绍了 Memorystore for Valkey 实例的实例和节点规范。如需了解如何创建实例,请参阅创建实例。
选择节点类型
实例中的所有节点都使用您选择的相同节点类型。最适合您实例的节点类型取决于您对价格、性能和键空间容量的要求。
shared-core-nano
节点类型适用于小型工作负载。此节点类型提供可变性能,且不提供 SLA,因此不适合生产工作负载。
standard-small
节点类型可让您预配小型实例,并以较小的增量扩展实例,与使用其他节点类型相比,这样做的成本可能更低。standard-small
还具有以下优势:可将键空间分布到更多节点,从而提高 vCPU 总数。只要较小节点的总键空间容量足以满足您的数据需求,这种配置就能提供比 highmem-medium
更好的性价比。
只有在您需要的实例容量超过 highmem-medium
提供的容量时,我们才建议您选择 highmem-xlarge
节点类型。虽然 highmem-xlarge
节点类型的大小是 highmem-medium
类型的四倍,但性能并不是四倍,因为当 vCPU 添加到越来越大的节点(纵向伸缩)时,Valkey 7.2 性能不会线性伸缩。相反,为了获得更好的性价比,您应该通过向实例添加更多节点来横向扩容。
节点类型规范
节点容量和特征取决于您选择的四种可用节点类型中的哪一种:
键空间容量和预留的开销
节点类型 | 默认可写入键空间容量 | 节点总容量 |
---|---|---|
shared-core-nano | 1.12 GB | 1.4 GB |
标准-小 | 5.2 GB | 6.5 GB |
highmem-medium | 10.4 GB | 13 GB |
highmem-xlarge | 46.4 GB | 58 GB |
Memorystore 会自动预留一部分实例容量,以帮助防止内存不足 (OOM) 错误。这样可确保密钥读取和写入体验顺畅。内存限制和存储空间详情如下:
自定义存储空间:虽然我们建议使用默认设置,但您可以选择使用
maxmemory
配置来调整预留存储空间量。如需了解maxmemory
,请参阅受支持的实例配置。您可获得多少存储空间?请参阅上表的默认可写入键空间容量列。此属性显示了默认情况下可用于密钥的存储空间大小。
最大限度地利用存储空间:如果您希望尽可能地利用存储空间,则总节点容量列会显示将
maxmemory
配置设置为 100% 时的存储空间上限。不过,不建议选择高于默认设置的maxmemory
值。shared-core-nano
节点类型的硬性限制为 1.12 GB,无法通过maxmemory
配置进行更改。
节点特征
节点类型 | vCPU 数量 | 提供的 SLA | 客户数量上限 | 客户端的最大内存(maxmemory-clients 配置) |
---|---|---|---|---|
shared-core-nano | 0.5 | 否 | 5,000 | 12% |
标准-小 | 2 | 是 | 16,000(默认值)。最大值为 32,000 | 7% |
highmem-medium | 2 | 是 | 32,000(默认)。最大值为 64,000 | 7% |
highmem-xlarge | 8 | 是 | 64,000 | 4% |
扩缩实例
在创建 Memorystore for Valkey 实例的过程中,您需要为该实例选择节点类型,并指定该实例的分片数量。创建实例后,随着实例的容量需求发生变化,您可能需要通过以下方式扩缩实例:
- 更改实例的分片数量。这是横向伸缩。
您可以通过执行以下某项操作来横向扩缩实例:
- 向实例添加分片。这属于实例伸缩。
- 从实例中移除分片。这是在中伸缩实例。
- 更改实例的节点类型。这称为纵向伸缩。如需纵向扩缩实例,请将实例的节点类型更改为以下节点类型之一:
- 改用更大的节点类型。这是纵向伸缩实例。
- 改为使用较小的节点类型。这是在伸缩实例。
实例规范
此部分显示了在给定实例规格、节点类型和副本数的情况下,实例的最小和最大容量。
最小可写入容量
可写入容量是指可用于写入密钥的存储空间量。它等于一个实例节点的大小。因此,根据节点类型的不同,最小可写入容量为 1.4 GB、6.5 GB、13 GB 或 58 GB。最小可写入容量不受您选择的副本数量的影响。
最大可写入容量
节点类型和大小 | 停用集群模式时的最大容量 | 在启用集群模式的情况下,如果实例配置为 250 个主节点,且每个节点有 0 个副本,则最大容量为 | 在启用集群模式的情况下,给定实例规格为 125 个主节点和每个节点 1 个副本时的最大容量 | 在启用集群模式的情况下,给定实例规格(83 个主节点,每个节点 2 个副本)的最大容量 |
---|---|---|---|---|
shared-core-nano - 1.4 GB | 1.12 GB | 350 GB | 175 GB | 116.2 GB |
标准-小 - 6.5 GB | 5.2 GB | 1,625 GB | 812.5 GB | 539.5 GB |
highmem-medium - 13 GB | 10.4 GB | 3,250 GB | 1,625 GB | 1,079 GB |
highmem-xlarge - 58 GB | 46.4 GB | 14,500 GB | 7,250 GB | 4,814 GB |
性能
在 us-central1
区域中使用 OSS memtier 基准比较工具,每个 2 vCPU 节点(standard-small
和 highmem-medium
)每秒可执行 12 万到 13 万次操作,延迟时间为微秒级,数据大小为 1KiB。
我们建议您使用真实工作负载或类似于生产流量的合成工作负载自行进行基准比较。此外,我们建议您在确定实例大小的时候,预留一定的缓冲空间(或“余量”),以应对工作负载高峰或意外流量。如需更多指导,请参阅最佳实践。
已启用集群模式的实例的端点
本部分介绍了已启用集群模式的实例所具有的发现端点和数据端点。
发现端点
每个实例都有一个发现端点,您的客户端会连接到该端点。它是 IP 地址和端口号的组合。如需了解如何查找实例的发现端点,请参阅查看实例的发现端点。
您的客户端也会使用它进行节点发现。您的客户端使用发现端点检索实例的节点拓扑,以引导第三方客户端,并在稳定状态下保持这些客户端处于最新状态。生成的节点拓扑提供节点端点(IP 和端口组合),供第三方客户端在内存中缓存。然后,您的客户端会自动处理更新和重定向,无需进行其他应用更改。如需了解客户端发现行为和最佳实践,请参阅客户端发现。
发现端点具有高可用性,因为它由多个可用区中的多个节点提供支持,以提供节点拓扑。即使遇到后端节点故障或节点更新,通过端点传送的服务拓扑也依然稳健。
您的发现端点具有以下行为:
在实例的整个生命周期内,即使在维护期间或您执行任何其他操作(例如缩减或伸缩规模或更改副本数量)时,实例的发现端点也会保持不变。
节点端点可能会发生变化,并且随着时间的推移,当添加和移除节点时,节点端点可能会被回收。理想情况下,您应使用可通过拓扑刷新和重定向自动处理这些更改的第三方客户端。如需查看第三方客户端的示例,请参阅客户端库代码示例。您的应用不应依赖于或假设节点端点在给定实例中保持不变。
数据端点
每个实例还有一个 Private Service Connect 数据端点,Memorystore for Valkey 使用该端点进行客户端连接。请勿直接连接到此端点。相反,Memorystore for Valkey 会使用此端点将客户端连接到实例中的节点。
已停用集群模式的实例的端点
本部分将介绍每个已停用集群模式的实例所具有的主端点和读取器端点。
主要端点
主端点是应用连接到的 IP 地址。此端点会将流量定向到当前的主节点。与主端点的连接可以发送写入查询和读取查询。
主端点具有以下行为:
- 在实例的整个生命周期内,您的主要端点 IP 地址保持不变。如果底层节点发生故障或进行自动故障切换,Memorystore for Valkey 会自动调整 IP 地址。客户端无需对端点进行任何更改。不过,如果因意外事件导致连接失败,客户端会尝试重新建立连接。
- 如果主节点成为副本,则与此副本节点的连接会结束,并且 Memorystore for Valkey 会通过自动故障切换将新连接重定向到新的主节点。客户端应使用指数退避算法重试连接。
- 如果实例有 1 个副本,则主端点的可用性高于读取器端点。如果实例预配了 2 个副本,则主端点和读取器端点都具有高可用性。
读取器端点
读取器端点是应用连接到的 IP 地址。此端点会将连接在实例中的副本之间进行均匀的负载均衡。与读取副本的连接可以发送读取查询,但不能发送写入查询。读取器端点可提高吞吐量,并提供与主节点的流量隔离。对于需要操作访问权限的应用(例如风险较高的脚本和离线作业),我们建议您使用读取器端点隔离来自主节点的流量。
读取器端点具有以下行为:
- 即使实例未预配任何读取副本,Memorystore for Valkey 也会预配读取器端点 IP 地址,以便动态添加读取副本。
- 如果系统没有可用于路由流量的可用读取副本,则与读取器端点的连接将会终止。不过,它不会将与读取器端点的连接路由到主节点。
- 如果副本节点成为主节点,则与此主节点的连接会结束,并且 Memorystore for Valkey 会将新连接重定向到新的副本节点。客户端使用指数退避算法重试这些连接。
如需了解如何在连接到集群模式已停用的端点时处理常见错误,请参阅处理集群模式已停用时的错误。