本页介绍了 Memorystore for Valkey 的两种可用模式:“集群模式已启用”和“集群模式已停用”。
已启用集群模式:已启用集群模式支持 OSS Valkey 集群规范。它可让您将数据分区到多个分片,对于数据量或数据传输速度较高的应用非常有用。
已停用集群模式:在“已停用集群模式”下,您的实例不会分区,并且托管在单个分片上。如果单个节点可以处理数据量和写入吞吐量,并且您更喜欢使用“启用集群模式”中不提供的特定功能,则可以使用此模式。
在创建实例时,您只能选择“集群模式已启用”或“集群模式已停用”。INFO 命令输出的 server_mode
字段指定了实例的模式。创建实例后,您无法将其从“集群模式已启用”或“集群模式已停用”模式更改为另一种模式。我们建议您选择“已启用集群模式”,因为此模式具有更好的横向扩缩特性。
比较“已启用集群模式”和“已停用集群模式”
功能 | 已启用集群模式 | 集群模式已停用 |
---|---|---|
横向扩缩 | 1 到 250 个分片 | 不支持(仅限单分片) |
客户端支持 | 需要集群感知型客户端才能使用发现端点 | 使用任何 Valkey 或 Redis 客户端 |
多按键命令 | 仅在单个键槽中受支持 | 适用于数据库中的所有键 |
可写入的最大容量 | 14,500 GB | 58 GB |
每个实例的数据库数上限 | 1 | 16 |
- 只有在创建实例时,您才能增加或缩减实例的大小。
- 该实例最多可以有两个只读副本。
我应该选择哪个
在选择“启用集群模式”和“停用集群模式”时,请考虑以下因素:
- 读写吞吐量:如果您的写入吞吐量由单个节点提供,并且您的读取吞吐量由最多两个副本提供,请使用“集群模式已停用”实例。如果读写吞吐量要求较高,请使用启用了集群模式的实例,因为此类实例可以将负载分散到不同的节点。
从 Memorystore for Redis 迁移:如果您使用的是 Memorystore for Redis 实例或自有 Redis 实例,则与迁移到启用集群模式的实例相比,迁移到停用集群模式的实例需要进行的更改非常少。如需迁移到启用了集群模式的实例,您必须使用集群感知型客户端。注意:Memorystore for Valkey 支持 IAM 身份验证,这种身份验证机制比 Memorystore 支持的明文身份验证更安全。
多键查询:停用集群模式的实例支持对数据库中的键执行多键操作(例如 MGET、MSET、EVAL)。对于启用了集群模式的实例,多键操作仅限于单个哈希槽。
命名空间:停用集群模式后,您可以使用多个数据库通过
SELECT
命令对不同类型的数据进行分桶。如果您想使用同一实例为多个应用提供支持,或者可能需要写入不同类型的无关数据,此功能非常有用。启用集群模式后,不支持多个数据库。最佳实践是使用多个 Valkey 实例,而不是多个数据库,以确保服务质量 (QoS)。同一节点上的多个数据库仅提供逻辑隔离。