首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Redis 的 MOVED 转向与 ASK 转向

redis 集群详解及搭建过程 其中我们遇到了报错: 这就是所谓的“MOVED转向”,那么什么是 MOVED 转向呢?本篇日志我们就来介绍一下。 2....MOVED 转向 当我们使用操作 redis 单节点的 client 来操作集群时,常常能够遇到上面的报错。...redis 官方规范要求所有客户端都应处理 MOVED 错误,从而实现对用户的透明。...我们上面看到的错误就是 MOVED 错误: (error) MOVED 866 172.21.16.4:6379 他表示,该执行该命令所需要的 slot 是 866 号哈希槽,负责该槽的节点是 172.21.16.4...MOVED 转向与 ASK 转向的区别类似于 http 协议中 301 跳转与 302 跳转的区别: MOVED 转向 — 当节点需要让一个客户端长期地(permanently)将针对某个槽的命令请求发送至另一个节点时

1.3K10
您找到你想要的搜索结果了吗?
是的
没有找到

Jedis是如何支持Cluster的

, 会先检查这个命令请求要处理的键所在的槽是否由自己负责, 如果不是的话, 节点将向客户端返回一个 MOVED 错误, MOVED 错误携带的信息可以指引客户端转向至正在负责相关槽的节点...MOVED:节点在接到一个命令请求时, 会先检查这个命令请求要处理的键所在的槽是否由自己负责, 如果不是的话, 节点将向客户端返回一个 MOVED 错误, MOVED 错误携带的信息可以指引客户端转向至正在负责相关槽的节点...但是 MOVED 重定向说明键对应的 slot 已经成功的转移到了新的节点,那么就可以换成这些连接。...当然,只有出现 MOVED 错误或者 JedisConnectionException 异常且无法继续重试时,才会进行刷新连接池操作。...在使用客户端是时候,Jedis 会有重试机制,用户可以设置重试次数,如果发生了 ask,客户端会自动根据返回值重定向,如果发生了 moved,则会刷新连接池中的 slot,因为集群发生了迁移。

1.9K40

Redis集群的重定向

一、重定向产生的原因 对于Redis的集群来说,因为集群节点不能代理(proxy)命令请求, 所以客户端应该在节点返回 -MOVED 或者 -ASK 转向(redirection)错误时, 自行将命令请求转发至其他节点...当节点需要让一个客户端长期地(permanently)将针对某个槽的命令请求发送至另一个节点时, 节点向客户端返回 MOVED 转向。...二、MOVED转向 一个 Redis 客户端可以向集群中的任意节点(包括从节点)发送命令请求。...如果所查找的槽不是由该节点处理的话, 节点将查看自身内部所保存的哈希槽到节点 ID 的映射记录, 并向客户端回复一个 MOVED 错误。 ?...4.如果保存数据的槽不在当前节点的管理范围内, 则向客户端返回moved重定向异常 。 5.客户端接收到节点返回的结果,如果是moved异常, 则从moved异常中获取目标节点的信息。

1.6K30
领券
http://www.vxiaotou.com