本页介绍了 Memorystore for Valkey 实例的实例和节点规范。如需了解如何创建实例,请参阅 创建实例。
选择节点类型
实例中的所有节点都使用您选择的相同节点类型。实例的最佳节点类型取决于您对价格、性能和键空间容量的要求。
shared-core-nano 节点类型适用于小型工作负载。此节点类型提供
可变 性能
,并且没有 SLA,因此不适合生产工作负载。
如果您要将工作负载从 Memorystore for Redis 迁移到 Memorystore for Valkey,或者需要创建节点大小为 1 GB 到 3GB 的实例,但需要 SLA 保证,请选择 custom-pico、custom-micro 或 custom-mini 节点类型。Memorystore for Valkey 承诺使用折扣 (CUD) 不适用于您在使用
这些节点类型时的支出。
借助 standard-small 节点类型,您可以预配小型实例,并以较小的增量扩充实例,这可能比其他节点类型的成本更低。
standard-small 还具有以下优势:可以将键空间分布在更多节点上,从而获得更高的 vCPU 总数。只要较小节点的总键空间容量足以满足您的数据需求,与 highmem-medium 相比,此节点类型可提供更高的性价比。
如果您的工作负载需要相对于内存更高的处理能力,请选择 highcpu-medium 节点类型。如果您需要的实例容量超过 highmem-medium 提供的容量,我们建议您选择 standard-large、highmem-xlarge 或 highmem-2xlarge 节点类型。当您向越来越大的节点添加 vCPU(纵向扩容)时,Valkey 性能可能不会线性伸缩。相反,为了获得更高的性价比,我们建议
您通过向实例添加更多节点来横向扩容
。
节点类型规范
节点容量和特性取决于您选择的节点类型:
键空间容量和预留开销
| 节点类型 | 默认可写键空间容量 | 节点总容量 |
|---|---|---|
| shared-core-nano | 1.12 GB | 1.4 GB |
| custom-pico | 1.08 GB | 1.25 GB |
| custom-micro | 2 GB | 2.5 GB |
| custom-mini | 3 GB | 3.75 GB |
| standard-small | 5.2 GB | 6.5 GB |
| highmem-medium | 10.4 GB | 13 GB |
| highcpu-medium | 10.4 GB | 13 GB |
| standard-large | 20.8 GB | 26 GB |
| highmem-xlarge | 46.4 GB | 58 GB |
| highmem-2xlarge | 88 GB | 110 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 | 5,000 | 12% |
| custom-pico | 2 | 是 | 16,000 | 32,000 | 12% |
| custom-micro | 2 | 是 | 16,000 | 32,000 | 12% |
| custom-mini | 2 | 是 | 16,000 | 32,000 | 12% |
| standard-small | 2 | 是 | 16,000 | 32,000 | 7% |
| highmem-medium | 2 | 是 | 32,000 | 64,000 | 7% |
| highcpu-medium | 8 | 是 | 32,000 | 64,000 | 7% |
| standard-large | 8 | 是 | 32,000 | 64,000 | 7% |
| highmem-xlarge | 8 | 是 | 64,000 | 64,000 | 4% |
| highmem-2xlarge | 16 | 是 | 64,000 | 64,000 | 4% |
为实例选择的虚拟 CPU (vCPU) 越多,性能就越好。如果您的实例运行资源密集型工作负载,请选择具有较高 vCPU 的节点类型(例如 highmem-xlarge)。如果您的实例执行的任务要求较低,请选择具有较低 vCPU 的节点类型(例如 highmem-medium)。
扩缩实例
在创建 Memorystore for Valkey 实例时,您可以为该实例选择节点类型,并指定该实例的分片数。 创建实例后,随着实例的容量需求发生变化,您可能需要通过以下方式扩缩实例:
- 更改实例的分片数。这是横向伸缩。 您可以通过执行以下操作之一来横向扩缩实例:
- 向实例添加分片。这是伸缩实例。
- 从实例中移除分片。这是伸缩实例。
- 更改实例的节点类型。这是纵向伸缩。 如需纵向扩缩实例,请将实例的节点类型更改为以下节点类型之一:
- 更改为更大的节点类型。这是伸缩实例。
- 更改为更小的节点类型。这是伸缩实例。
实例规范
本部分显示了在给定实例形状、节点类型和副本数的情况下,实例的最小和最大容量。
最小可写容量
可写容量是可用于写入键的存储空间量。它等于一个实例节点的大小。因此,根据节点类型的不同,最小可写容量介于 1.25 GB 和 110 GB 之间。最小可写容量不受您选择的副本数的影响。
最大可写容量
本部分列出了已启用集群模式的实例和已停用集群模式的实例的最大可写容量。
已启用集群模式的实例
下表列出了每个节点有 0-5 个副本的已启用集群模式的实例的最大可写容量。
| 节点类型和大小 | 最大容量(假设实例形状为 250 个主节点,每个节点 0 个副本) | 最大容量(假设实例形状为 125 个主节点,每个节点 1 个副本) | 最大容量(假设实例形状为 83 个主节点,每个节点 2 个副本) | 最大容量(假设实例形状为 62 个主节点,每个节点 3 个副本) | 最大容量(假设实例形状为 50 个主节点,每个节点 4 个副本) | 最大容量(假设实例形状为 41 个主节点,每个节点 5 个副本) |
|---|---|---|---|---|---|---|
| shared-core-nano - 1.4 GB | 350 GB | 175 GB | 116.2 GB | 86.8 GB | 70 GB | 57.4 GB |
| standard-small - 6.5 GB | 1,625 GB | 812.5 GB | 539.5 GB | 403 GB | 325 GB | 266.5 GB |
| highmem-medium - 13 GB | 3,250 GB | 1,625 GB | 1,079 GB | 806 GB | 650 GB | 533 GB |
| highcpu-medium - 13 GB | 3,250 GB | 1,625 GB | 1,079 GB | 806 GB | 650 GB | 533 GB |
| standard-large - 26 GB | 6,500 GB | 3,250 GB | 2,158 GB | 1,612 GB | 1,300 GB | 1,066 GB |
| highmem-xlarge - 58 GB | 14,500 GB | 7,250 GB | 4,814 GB | 3,596 GB | 2,900 GB | 2,378 GB |
| highmem-2xlarge - 110 GB | 27,500 GB | 13,750 GB | 9,130 GB | 6,820 GB | 5,500 GB | 4,510 GB |
custom-pico、custom-micro 和 custom-mini 节点类型仅适用于已停用集群模式的实例。因此,这些节点类型不会显示在此表中。
已停用集群模式的实例
下表列出了已停用集群模式的实例的最大可写容量。
| 节点类型和大小 | 最大可写容量 |
|---|---|
| shared-core-nano - 1.4 GB | 1.12 GB |
| custom-pico - 1.25 GB | 1.08 GB |
| custom-micro - 2.5 GB | 2 GB |
| custom-mini - 3.75 GB | 3 GB |
| standard-small - 6.5 GB | 5.2 GB |
| highmem-medium - 13 GB | 10.4 GB |
| highcpu-medium - 13 GB | 10.4 GB |
| standard-large - 26 GB | 20.8 GB |
| highmem-xlarge - 58 GB | 46.4 GB |
| highmem-2xlarge - 110 GB | 88 GB |
性能
在 us-central1 区域中使用 OSS memtier 基准测试工具,每个 2 vCPU 节点(standard-small 和 highmem-medium)每秒可执行 120,000 到 130,000
次操作,延迟为微秒级,数据大小为 1KiB。
我们建议您使用真实工作负载或类似于生产流量的合成工作负载执行自己的基准测试。此外,我们建议您为实例预留一定的缓冲空间(或“余量”),以应对工作负载高峰或意外流量。如需更多指导,请参阅 最佳实践。
已启用集群模式的实例的端点
本部分介绍了已启用集群模式的实例具有的发现端点和数据端点。
发现端点
每个实例都有一个发现端点,您的客户端会连接到该端点。它由 IP 地址和端口号组成。如需了解如何 查找实例的发现端点,请参阅查看实例的发现端点。
您的客户端还会使用它进行节点发现。您的客户端使用发现端点检索实例的节点拓扑,以引导第三方客户端,并使其在稳定状态下保持最新。生成的节点拓扑提供节点端点(IP 和端口组合),供第三方客户端在内存中缓存。然后,您的客户端会自动处理更新和重定向,而无需进行其他应用更改。如需了解客户端发现行为和最佳实践,请参阅 客户端发现。
发现端点具有高可用性,因为它由多个可用区中的多个节点提供支持,以提供节点拓扑。即使遇到后端节点故障或节点更新,通过端点提供拓扑也十分可靠。
您的发现端点具有以下行为:
实例的发现端点在实例的整个生命周期内保持不变,即使在维护期间或您执行的任何其他操作(例如横向伸缩或缩容或更改副本数)期间也是如此。
节点端点可能会发生变化,并且随着时间的推移,节点端点可能会随着节点的添加和移除而被回收。理想情况下,您应使用第三方客户端,该客户端可以通过拓扑刷新和重定向自动处理这些更改。您可以在客户端库代码示例中找到 第三方客户端的示例。您的应用不应具有对节点端点在给定实例中保持不变的依赖项或假设。
数据端点
除了发现端点之外,每个已启用集群模式的实例都有一个数据端点。此端点专供 Memorystore for Valkey 用于将客户端连接到实例中的节点。因此,请勿直接连接到此端点。
已停用集群模式的实例的端点
本部分介绍了每个已停用集群模式的实例具有的主端点和读取器端点。
主要端点
主要端点是应用连接到的 IP 地址。此端点会将流量定向到当前主节点。与主要端点的连接可以发送写入查询和读取查询。
您的主要端点具有以下行为:
- 您的主要端点 IP 地址在实例的整个生命周期内保持不变。如果底层节点发生故障或进行自动故障切换,Memorystore for Valkey 会自动调整 IP 地址。 客户端无需对端点进行任何更改。但是,如果计划外事件导致连接失败,客户端会尝试重新建立连接。
- 如果主节点成为副本,则与此副本节点的连接会结束,并且 Memorystore for Valkey 会通过自动故障切换将新连接重定向到新的主节点。客户端应使用 指数退避算法重试连接。
- 如果实例有 1 个副本,则主要端点的可用性高于读取器端点。如果实例预配了 2 个副本,则主要端点和读取器端点都具有高可用性。
读取器端点
读取器端点是应用连接到的 IP 地址。此端点会将连接在实例中的副本之间进行负载均衡。 与读取副本的连接可以发送读取查询,但不能发送写入查询。 读取器端点可提高吞吐量,并提供与主节点的流量隔离。对于需要操作访问权限的应用(例如风险脚本和离线作业),我们建议您使用读取器端点隔离来自主节点的流量。
您的读取器端点具有以下行为:
- 即使实例未预配任何读取副本,Memorystore for Valkey 也会预配读取器端点 IP 地址,以便动态添加读取副本。
- 如果系统没有可将流量路由到的可用读取副本,则与读取器端点的连接将终止。但是,它不会将与读取器端点的连接路由到主节点。
- 如果副本节点成为主节点,则与此主节点的连接会结束,并且 Memorystore for Valkey 会将新连接重定向到新的副本节点。 客户端会使用指数退避算法重试这些连接。
如需了解如何在连接到已停用集群模式的 端点时处理常见错误,请参阅处理已停用集群模式中的错误。