关于禁用集群模式的ElastiCache for Redis重定向的疑问
关于ElastiCache for Redis禁用集群模式下出现重定向的疑问解答
这既不是文档错误,也不是你理解的核心逻辑有误,问题出在连接参数和集群端点的特性上:
- 禁用集群模式的ElastiCache Redis集群确实只有一个分片,写操作必须由主节点处理,副本仅同步数据、处理读请求。但你使用的连接命令里加了
-c参数——这个参数是Redis客户端专门为集群模式设计的强制重定向开关,哪怕连接的是非集群模式实例,只要开启这个参数,客户端就会把节点返回的MOVED/ASK响应解析为重定向指令。 - 禁用集群模式的集群配置端点(Configuration Endpoint)会采用轮询策略返回主节点和副本节点的地址。当你通过这个端点连接时,如果恰好命中了副本节点,执行写操作(比如
set x Hi)会被副本节点返回MOVED响应(引导到主节点),而-c参数让客户端自动执行了重定向操作,就出现了你看到的现象。 - 正确的连接方式:连接禁用集群模式的ElastiCache集群时,不要添加
-c参数。使用命令$ src/redis-cli -h cluster-endpoint -p port number连接后,如果命中副本节点,写操作会直接返回READONLY报错,而非自动重定向;如果需要确保始终连接主节点,建议直接使用主节点的独立端点,而非集群配置端点。
内容的提问来源于stack exchange,提问作者YoavKlein
相关产品推荐
相关产品推荐

