Redis集群中数据管理方法、装置、介质及电子设备制造方法及图纸

技术编号:25550644 阅读:21 留言:0更新日期:2020-09-08 18:49
本公开涉及数据迁移领域,揭示了一种Redis集群中数据管理方法、装置、介质及电子设备。该方法包括:向ZooKeeper集群发送迁移路径信息和第一指令,使ZooKeeper集群保存迁移路径信息并根据第一指令将分片的状态信息由正常状态改为迁移状态,使客户端在收到对分片中数据的读写请求后根据分片为迁移状态,基于迁移路径信息将该数据从源Redis群组迁移至目标Redis群组并在目标Redis群组对该数据进行读写;基于迁移路径信息和分片为迁移状态,将源Redis群组分片中的数据迁移至目标Redis群组存储;若分片中用户数据均被存储至目标Redis群组,向ZooKeeper集群发送第二指令,由ZooKeeper集群根据第二指令将分片的状态信息改为正常状态。此方法下,可以确保数据迁移时数据读写的正确性,提高Redis集群的可用性。

【技术实现步骤摘要】
Redis集群中数据管理方法、装置、介质及电子设备
本公开涉及数据迁移
,特别涉及一种Redis集群中数据管理方法、装置、介质及电子设备。
技术介绍
Redis(RemoteDictionaryServer,远程字典服务)是一个开源的使用ANSIC语言编写、支持网络、可基于内存亦可持久化的日志型、键-值数据库。将Redis数据库应用于实际应用的一种方式是建立Redis集群。目前,在使用Redis集群时,将缓存数据从源服务器迁移到目标服务器过程中,无法支持外部访问,即,需要停止服务才能实现缓存数据在服务器之间的迁移,这样就导致Redis集群的可用性降低。
技术实现思路
在数据迁移
,为了解决上述技术问题,本公开的目的在于提供一种Redis集群中数据管理方法、装置、介质及电子设备。根据本公开的一方面,提供了一种Redis集群中数据管理方法,所述Redis集群包括多个Redis群组,每一用户对应一个实例和一个客户端,每一实例的用户数据被划分为多个分片,每一分片绑定一个Redis群组,所述方法包括:向ZooKeeper集群发送迁移路径信息和对需要迁移的分片的状态信息的第一更新指令,使所述ZooKeeper集群保存所述迁移路径信息,并根据所述第一更新指令将所述需要迁移的分片的状态信息由正常状态更新为迁移状态,以便所述需要迁移的分片对应的客户端在接收到对所述需要迁移的分片中目标用户数据的读写请求之后,根据监听到的所述需要迁移的分片的状态信息为迁移状态,基于所述迁移路径信息将所述目标用户数据从源Redis群组迁移至目标Redis群组,并在所述目标Redis群组中根据所述读写请求对所述目标用户数据进行读写,其中,所述迁移路径信息包括源Redis群组信息和目标Redis群组信息,所述ZooKeeper集群保存各分片的状态信息,所述迁移状态用于指示客户端在接收到与该迁移状态对应的目标用户数据的读写请求之后,将该目标用户数据从源Redis群组迁移至目标Redis群组以及所要迁移的用户数据的位置;基于所述迁移路径信息和所述需要迁移的分片处于迁移状态,开始从所述源Redis群组获取所述需要迁移的分片中的用户数据,并将所述用户数据迁移至所述目标Redis群组进行存储;若所述需要迁移的分片中的用户数据均已被存储至所述目标Redis群组,向所述ZooKeeper集群发送对需要迁移的分片的状态信息的第二更新指令,由所述ZooKeeper集群根据所述第二更新指令将所述需要迁移的分片的状态信息由迁移状态更新为正常状态。根据本公开的另一方面,提供了一种Redis集群中数据管理装置,所述Redis集群包括多个Redis群组,每一用户对应一个实例和一个客户端,每一实例的用户数据被划分为多个分片,每一分片绑定一个Redis群组,所述装置包括:第一发送模块,被配置为向ZooKeeper集群发送迁移路径信息和对需要迁移的分片的状态信息的第一更新指令,使所述ZooKeeper集群保存所述迁移路径信息,并根据所述第一更新指令将所述需要迁移的分片的状态信息由正常状态更新为迁移状态,以便所述需要迁移的分片对应的客户端在接收到对所述需要迁移的分片中目标用户数据的读写请求之后,根据监听到的所述需要迁移的分片的状态信息为迁移状态,基于所述迁移路径信息将所述目标用户数据从源Redis群组迁移至目标Redis群组,并在所述目标Redis群组中根据所述读写请求对所述目标用户数据进行读写,其中,所述迁移路径信息包括源Redis群组信息和目标Redis群组信息,所述ZooKeeper集群保存各分片的状态信息,所述迁移状态用于指示客户端在接收到与该迁移状态对应的目标用户数据的读写请求之后,将该目标用户数据从源Redis群组迁移至目标Redis群组以及所要迁移的用户数据的位置;迁移模块,被配置为基于所述迁移路径信息和所述需要迁移的分片处于迁移状态,开始从所述源Redis群组获取所述需要迁移的分片中的用户数据,并将所述用户数据迁移至所述目标Redis群组进行存储;第二发送模块,被配置为若所述需要迁移的分片中的用户数据均已被存储至所述目标Redis群组,向所述ZooKeeper集群发送对需要迁移的分片的状态信息的第二更新指令,由所述ZooKeeper集群根据所述第二更新指令将所述需要迁移的分片的状态信息由迁移状态更新为正常状态。根据本公开的另一方面,提供了一种计算机可读程序介质,其存储有计算机程序指令,当所述计算机程序指令被计算机执行时,使计算机执行如前所述的方法。根据本公开的另一方面,提供了一种电子设备,所述电子设备包括:处理器;存储器,所述存储器上存储有计算机可读指令,所述计算机可读指令被所述处理器执行时,实现如前所述的方法。本公开的实施例提供的技术方案可以包括以下有益效果:在本公开所提供的Redis集群中数据管理方法中,Redis集群包括多个Redis群组,每一用户对应一个实例和一个客户端,每一实例的用户数据被划分为多个分片,每一分片绑定一个Redis群组,具体包括如下步骤:向ZooKeeper集群发送迁移路径信息和对需要迁移的分片的状态信息的第一更新指令,使所述ZooKeeper集群保存所述迁移路径信息,并根据所述第一更新指令将所述需要迁移的分片的状态信息由正常状态更新为迁移状态,以便所述需要迁移的分片对应的客户端在接收到对所述需要迁移的分片中目标用户数据的读写请求之后,根据监听到的所述需要迁移的分片的状态信息为迁移状态,基于所述迁移路径信息将所述目标用户数据从源Redis群组迁移至目标Redis群组,并在所述目标Redis群组中根据所述读写请求对所述目标用户数据进行读写,其中,所述迁移路径信息包括源Redis群组信息和目标Redis群组信息,所述ZooKeeper集群保存各分片的状态信息,所述迁移状态用于指示客户端在接收到与该迁移状态对应的目标用户数据的读写请求之后,将该目标用户数据从源Redis群组迁移至目标Redis群组以及所要迁移的用户数据的位置;基于所述迁移路径信息和所述需要迁移的分片处于迁移状态,开始从所述源Redis群组获取所述需要迁移的分片中的用户数据,并将所述用户数据迁移至所述目标Redis群组进行存储;若所述需要迁移的分片中的用户数据均已被存储至所述目标Redis群组,向所述ZooKeeper集群发送对需要迁移的分片的状态信息的第二更新指令,由所述ZooKeeper集群根据所述第二更新指令将所述需要迁移的分片的状态信息由迁移状态更新为正常状态。此方法下,通过先向ZooKeeper集群发送迁移路径信息和对需要迁移的分片的状态信息的第一更新指令,这样就将迁移路径信息保存在ZooKeeper集群中,并且使ZooKeeper集群将需要迁移的分片的状态信息由正常状态更新为迁移状态。由于需要迁移的分片处于迁移状态,便可以基于迁移路径信息将需要迁移的分片中的用户数据从源Redis群组迁移至目标Redis群组,实现数据的迁移;在此过程中,由于各分片对应的客户端会对各分片的状态信息进行监听,可本文档来自技高网...

【技术保护点】
1.一种Redis集群中数据管理方法,所述Redis集群包括多个Redis群组,每一用户对应一个实例和一个客户端,每一实例的用户数据被划分为多个分片,每一分片绑定一个Redis群组,其特征在于,所述方法包括:/n向ZooKeeper集群发送迁移路径信息和对需要迁移的分片的状态信息的第一更新指令,使所述ZooKeeper集群保存所述迁移路径信息,并根据所述第一更新指令将所述需要迁移的分片的状态信息由正常状态更新为迁移状态,以便所述需要迁移的分片对应的客户端在接收到对所述需要迁移的分片中目标用户数据的读写请求之后,根据监听到的所述需要迁移的分片的状态信息为迁移状态,基于所述迁移路径信息将所述目标用户数据从源Redis群组迁移至目标Redis群组,并在所述目标Redis群组中根据所述读写请求对所述目标用户数据进行读写,其中,所述迁移路径信息包括源Redis群组信息和目标Redis群组信息,所述ZooKeeper集群保存各分片的状态信息,所述迁移状态用于指示客户端在接收到与该迁移状态对应的目标用户数据的读写请求之后,将该目标用户数据从源Redis群组迁移至目标Redis群组以及所要迁移的用户数据的位置;/n基于所述迁移路径信息和所述需要迁移的分片处于迁移状态,开始从所述源Redis群组获取所述需要迁移的分片中的用户数据,并将所述用户数据迁移至所述目标Redis群组进行存储;/n若所述需要迁移的分片中的用户数据均已被存储至所述目标Redis群组,向所述ZooKeeper集群发送对需要迁移的分片的状态信息的第二更新指令,由所述ZooKeeper集群根据所述第二更新指令将所述需要迁移的分片的状态信息由迁移状态更新为正常状态。/n...

【技术特征摘要】
1.一种Redis集群中数据管理方法,所述Redis集群包括多个Redis群组,每一用户对应一个实例和一个客户端,每一实例的用户数据被划分为多个分片,每一分片绑定一个Redis群组,其特征在于,所述方法包括:
向ZooKeeper集群发送迁移路径信息和对需要迁移的分片的状态信息的第一更新指令,使所述ZooKeeper集群保存所述迁移路径信息,并根据所述第一更新指令将所述需要迁移的分片的状态信息由正常状态更新为迁移状态,以便所述需要迁移的分片对应的客户端在接收到对所述需要迁移的分片中目标用户数据的读写请求之后,根据监听到的所述需要迁移的分片的状态信息为迁移状态,基于所述迁移路径信息将所述目标用户数据从源Redis群组迁移至目标Redis群组,并在所述目标Redis群组中根据所述读写请求对所述目标用户数据进行读写,其中,所述迁移路径信息包括源Redis群组信息和目标Redis群组信息,所述ZooKeeper集群保存各分片的状态信息,所述迁移状态用于指示客户端在接收到与该迁移状态对应的目标用户数据的读写请求之后,将该目标用户数据从源Redis群组迁移至目标Redis群组以及所要迁移的用户数据的位置;
基于所述迁移路径信息和所述需要迁移的分片处于迁移状态,开始从所述源Redis群组获取所述需要迁移的分片中的用户数据,并将所述用户数据迁移至所述目标Redis群组进行存储;
若所述需要迁移的分片中的用户数据均已被存储至所述目标Redis群组,向所述ZooKeeper集群发送对需要迁移的分片的状态信息的第二更新指令,由所述ZooKeeper集群根据所述第二更新指令将所述需要迁移的分片的状态信息由迁移状态更新为正常状态。


2.根据权利要求1所述的方法,其特征在于,在向ZooKeeper集群发送迁移路径信息和对需要迁移的分片的状态信息的第一更新指令之前,所述方法还包括:
将在所述Redis集群中部署的Redis群组的Redis群组信息添加至所述ZooKeeper集群,以便将所述部署的Redis群组的Redis群组信息作为迁移路径信息中的目标Redis群组信息。


3.根据权利要求1所述的方法,其特征在于,在向ZooKeeper集群发送迁移路径信息和对需要迁移的分片的状态信息的第一更新指令之前,所述方法还包括:
获取所述Redis集群中各Redis群组的接入实例数量信息和内存使用信息并存储至所述ZooKeeper集群;
根据管理员的指令从所述ZooKeeper集群读取所述Redis集群中各Redis群组的接入实例数量信息和内存使用信息并进行展示,以便接收所述管理员根据展示出的接入实例数量信息和内存使用信息提交的源Redis群组信息和目标Redis群组信息,并发送至所述ZooKeeper集群,以作为迁移路径信息进行存储。


4.根据权利要求3所述的方法,其特征在于,所述获取所述Redis集群中各Redis群组的接入实例数量信息和内存使用信息并存储至所述ZooKeeper集群,包括:
在根据预定规则确定的时刻定期获取所述Redis集群中各Redis群组的接入实例数量信息和内存使用信息并存储至所述ZooKeeper集群。


5.根据权利要求1所述的方法,其特征在于,所述ZooKeeper集群保存了分片信息和对应的Redis群组信息,所述客户端通过如下方式处理接收到的读写请求:
对ZooKeeper集群中的分片信息和Redis群组信息进行监听,以将ZooKeeper集群中与该客户端对应的分片信息和Redis群组信息同步至该客户端;
当接收到对用户数据的读写请求,根据监听得到的与该客户端对应的分片信息和Redis群组信息确定所述用户数据对应的分片信息和Redis群组信息;
按照所述分片信息和Redi...

【专利技术属性】
技术研发人员:刘双叶周晶
申请(专利权)人:深圳壹账通智能科技有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1