ClusterMode.4 - wyc902/redis GitHub Wiki

redis 集群在重新分片的过程中对key的响应。 key属于的槽i是否由节点1处理,不是的话正常handle。 是的话在自己数据库里查,找到返回,没找到: 如果clusterState.migrating_slots_to[i]!=null,说明正在迁移槽i,返回ask错误给客户端,否则返回key不存在。

客户端收到ask命令, 1 向目标节点发送asking命令,服务器打开客户端ask标志 2 向节点请求key。

服务端: 1得到key所属的槽i,i指派给了自己,正常handle 2 i没指派自己,clusterState.importing_slots_from[i]!=null,说明正在导入槽i,否则返回moved错误。 3 客户端带有ask标志,返回key的值,否则返回moved错误。

ask标志每次请求以后被清除。