【技术实现步骤摘要】
数据迁移方法、装置、设备以及存储介质
[0001]本申请涉及计算机
,尤其涉及一种数据迁移方法、装置、设备以及存储介质。
技术介绍
[0002]远程字典服务(Remote Dictionary Server,Redis),是一个开源的使用ANSIC语言编写、支持网络、可基于内存亦可持久化的日志型的键
‑
值(Key
‑
Value)数据库,是业界当前流行的键
‑
值存储系统。Redis集群(cluster)是指多个分片(sharding)构成的一种架构,整个Redis集群被拆分为多个分片,每个分片存储着一部分数据,所有分片叠加一起存储着该Redis集群的全量数据。一个Redis集群中存在很多的数据槽(Slot),Slot也称数据切片,每个Slot分别位于不同分片上。
[0003]Redis集群的扩容和缩容分别是指Redis集群中分片数量的增加和删减,对于Redis集群而言,随着业务量的动态变化,需要在集群容量不够时进行Redis集群的扩容,即增加新的分片到当前的Redis集群中,重新分配各个分片上的Slot,并迁移Slot及Slot上的数据到新增的分片上;在集群容量处于闲置状态时进行Redis集群的缩容,即删减当前的Redis集群中的一个或多个分片,将删减的分片中Slot及Slot上的数据迁移到其它分片。
[0004]现有技术中,在实现Redis集群的扩容和缩容时,Slot之间的数据迁移是以键(Key)的粒度进行迁移,即一个Key一个Key地迁移, ...
【技术保护点】
【技术特征摘要】
1.一种数据迁移方法,其特征在于,所述方法应用于待迁移节点,所述方法包括:接收元服务器发送的数据槽迁移命令,所述数据槽迁移命令携带待迁移数据槽的标识和目标节点的标识;将所述待迁移节点中的待迁移数据槽的数据和所述待迁移数据槽的标识按照预设格式转换为数据加载命令并发送至所述目标节点,以使所述目标节点解析所述数据加载命令并将解析得到的所述待迁移数据槽的数据加载到所述目标节点的内存中;接收所述目标节点发送的用于指示数据迁移成功或者失败的指示信息。2.根据权利要求1所述的方法,其特征在于,所述将所述待迁移节点中的待迁移数据槽的数据和所述待迁移数据槽的标识按照预设格式转换为数据加载命令并发送至所述目标节点,包括:通过所述待迁移节点的子线程,将所述待迁移节点中的待迁移数据槽的数据和所述待迁移数据槽的标识按照预设格式转换为数据加载命令并发送至所述目标节点。3.根据权利要求2所述的方法,其特征在于,所述通过所述待迁移节点的子线程,将所述待迁移节点中的待迁移数据槽的数据和所述待迁移数据槽的标识按照预设格式转换为数据加载命令并发送至所述目标节点,包括:向所述子线程发送迁移信号,并设置所述待迁移数据槽的写请求状态为不可访问状态;通过所述子线程将所述待迁移节点中的待迁移数据槽的数据和所述待迁移数据槽的标识按照预设格式转换为数据加载命令;通过所述子线程将所述数据加载命令发送至所述目标节点。4.根据权利要求3所述的方法,其特征在于,所述通过所述子线程将所述待迁移节点中的待迁移数据槽的数据和所述待迁移数据槽的标识按照预设格式转换为数据加载命令,包括:通过所述子线程从所述待迁移节点预分配第一内存,将包括所述待迁移数据槽的标识的命令前缀写入所述第一内存;通过所述子线程调用数据加载函数,遍历所述待迁移数据槽的内存区域以获取所述待迁移数据槽的数据;通过所述子线程将所述待迁移数据槽的数据和所述待迁移数据槽的数据的长度写入所述第一内存,得到包括所述命令前缀、所述待迁移数据槽的数据和所述待迁移数据槽的数据的长度的加载命令;通过所述子线程调用反转函数,对所述加载命令中的所述待迁移数据槽的数据和所述待迁移数据槽的数据的长度的位置进行置换,得到所述预设格式的所述数据加载命令,其中,所述待迁移数据槽的数据以序列化的二进制流的形式存在在所述数据加载命令中。5.根据权利要求4所述的方法,其特征在于,通过所述子线程将所述待迁移数据槽的数据和所述待迁移数据槽的数据的长度写入所述第一内存,包括:通过所述子线程若确定所述待迁移数据槽的数据的长度大于预设阈值,则将所述待迁移数据槽的数据进行压缩,得到压缩后的待迁移数据槽的数据和压缩后的待迁移数据槽的数据的长度;通过所述子线程将所述压缩后的待迁移数据槽的数据和压缩后的待迁移数据槽的数
据的长度写入所述第一内存。6.根据权利要求1
‑
5任一项所述的方法,其特征在于,所述方法还包括:若接收到所述目标节点发送的用于指示数据迁移成功的指示信息,向所述元服务器发送用于指示所述待迁移数据槽的数据迁移成功的指示信息,用于所述元服务器将所述待迁移节点中所述待迁移数据槽的状态设置为不可用状态,并将所述目标节点中所述待迁移数据槽的状态设置为可用状态。7.一种数据迁...
【专利技术属性】
技术研发人员:胡东旭,赵鹏,
申请(专利权)人:重庆度小满优扬科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。