本页面介绍了 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)。同一节点上的多个数据库仅提供逻辑隔离。