redis cluster集群架构详解(十一)- 数据迁移

本文深入探讨Redis Cluster的数据迁移过程,重点讲解在MIGRATING和IMPORTING状态下的处理策略。在MIGRATING状态,当key不存在时,客户端会收到ASK请求,需先发送ASKING命令到目标节点再执行。而在IMPORTING状态,若key不在节点上,将通过MOVED重定向。文中还详细阐述了读写请求、MOVED请求和ASK请求的情况。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

5.4. 数据迁移

当槽x从Node A向Node B迁移时,Node A和Node B都会有这个槽x,Node A上槽x的状态设置为MIGRATING,Node B上槽x的状态被设置为IMPORTING。

在这里插入图片描述

MIGRATING状态:

1、如果key存在则成功处理。

2、如果key不存在,则返回客户端ASK,客户端根据ASK首先发送ASKING命令到目标节点,然后发送请求的命令到目标节点

3、当key包含多个命令

 a)如果都存在则成功处理

 b)如果都不存在,则返回客户端ASK

 c)如果一部分存在,则返回客户端TRYAGAIN,通知客户端稍后重试,这样当所有的key都迁移完毕的时候客户端重试请求的时候回得到ASK,然后经过一次重定向就可以获取这批键

4、此时不刷新客户端中node的映射关系。

IMPORTING状态

1、如果key不在该节点上,会被MOVED重定向,刷新客户端中node的映射关系

2、如果是ASKING命令则命令会被执行,key不在迁移的节点已经被迁移到目标的节点

3、Key不存在则新建

5.4.1. 读写请求

槽里面的key1还未迁移,并且槽属于迁移中。假如key1属于槽x,并且key1还在Node MPORTING。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值