启用和停用集群模式

本页面介绍了 Memorystore for Valkey 的两种可用模式:已启用集群模式和已停用集群模式。

  • 已启用集群模式: 已启用集群模式支持 OSS Valkey 集群规范。它允许您跨多个分片对数据进行分区,并且适用于数据量或数据速度较高的应用。

  • 已停用集群模式: 在已停用集群模式下,您的实例不会进行分区,并且托管在单个分片上。如果数据量和写入吞吐量可以由单个节点处理,并且您希望使用已启用集群模式下不可用的特定功能,则可以使用此模式。

您只能在创建实例时选择已启用集群模式或已停用集群模式。server_mode 字段在 INFO 命令的输出中用于指定实例的模式。使用已启用集群模式或已停用集群模式创建实例后,您无法将实例更改为另一种模式。我们建议您选择已启用集群模式,因为此模式具有更好的横向伸缩特性。

比较已启用集群模式和已停用集群模式

功能 已启用集群模式 已停用集群模式
横向伸缩 1 到 250 个分片 不支持(仅限单个分片)
客户端支持 需要使用集群感知型客户端才能使用发现端点 使用任何 Valkey 或 Redis 客户端
多键命令 仅在单个键槽中受支持 在数据库中的所有键中受支持
最大可写容量 14,500 GB 58 GB
每个实例的最大数据库数 1 16(最多可配置 100 个数据库)

我应该选择哪个

在选择已启用集群模式和已停用集群模式时,请考虑以下因素:

  • 读取和写入吞吐量: 如果您的写入吞吐量由单个节点满足,并且您的读取吞吐量由最多两个副本满足,则使用已停用集群模式的实例。如果读取和写入吞吐量要求较高,则使用已启用集群模式的实例,因为此类实例可以将负载分散到不同的节点。
  • 从 Memorystore for Redis 迁移: 如果您使用的是 Memorystore for Redis 实例 或自行管理的 Redis 实例,则与迁移到已启用集群模式的实例相比,迁移到已停用集群模式的实例所需的更改最少。如需迁移到已启用集群模式的实例,您必须使用集群感知型客户端

  • 多键查询: 已停用集群模式的实例支持在数据库中的键之间执行多键操作(例如:MGET、MSET、EVAL)。对于已启用集群模式的实例,多键操作仅限于单个哈希槽。

  • 命名空间:在已停用集群模式下,您可以使用多个数据库,通过使用 SELECT 命令将不同类型的数据分到不同的存储桶中。如果您想使用同一实例为多个应用提供支持,或者您可能需要写入不同类型的无关数据,则此功能非常有用。已启用集群模式不支持多个数据库。作为最佳实践,我们建议您使用多个 Valkey 实例而不是多个数据库,以确保服务质量 (QoS)。同一节点上的多个数据库仅提供逻辑隔离。