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