分布式缓存数据离线传输方法、装置及可读存储介质制造方法及图纸

技术编号:27058988 阅读:18 留言:0更新日期:2021-01-15 14:38
本发明专利技术涉及一种分布式缓存数据离线传输方法、装置及可读存储介质。方法包括:主集群将接收到的缓存数据按照预设格式实时存入磁盘持久化文件中;当所述主集群故障时,对所述磁盘持久化文件中的数据依次进行实时解析,获取对应的所述缓存数据,将获取的所述缓存数据存入副集群中。本发明专利技术实施例保证了数据的完整性和一致性,不依赖于集群模式的绝对一致性,即不要求主集群与副集群有相同的主节点数量,并且可以省去业务为了保证数据一致性而进行双写,一定程度上提升了业务的处理性能,在主集群服务异常后,可以直接切换到副集群,提升了数据存储服务的容灾能力。

【技术实现步骤摘要】
分布式缓存数据离线传输方法、装置及可读存储介质
本专利技术涉及非关系型内存数据库Redis
,尤其涉及一种分布式缓存数据离线传输方法、装置及可读存储介质。
技术介绍
在实际项目运营中,分布式缓存的容灾场景中,会涉及到主集群与副集群之间的数据传输问题,在初级容灾场景中,只考虑了数据的传输问题,即如何从主集群将数据传输到副集群中。当前流行的数据传输工具利用的是redis的主从复制原理,使用psync命令完成同步,过程分先“全量”与后“部分”复制:此种同步方式只能将数据从主集群复制到副集群,不能校验数据是否已经到达了副集群中,这样在主集群突然发生异常时,无法保证副集群的数据与主机群的数据一致。
技术实现思路
本专利技术所要解决的技术问题是针对现有技术存在的问题,提供一种分布式缓存数据离线传输方法、装置及可读存储介质。为解决上述技术问题,本专利技术实施例提供一种分布式缓存数据离线传输方法,包括:主集群将接收到的缓存数据按照预设格式实时存入磁盘持久化文件中;当所述主集群故障时,对所述磁盘持久化文件中的数据依次进行实时解析,获取对应的所述缓存数据,将获取的所述缓存数据存入副集群中。为解决上述技术问题,本专利技术实施例还提供一种分布式缓存数据离线传输装置,包括:数据写入模块,用于主集群将接收到的缓存数据按照预设格式实时存入磁盘持久化文件中;数据解析迁移模块,用于当所述主集群故障时,对所述磁盘持久化文件中的数据依次进行实时解析,获取对应的所述缓存数据,将获取的所述缓存数据存入副集群中。为解决上述技术问题,本专利技术实施例还提供一种计算机可读存储介质,包括指令,当所述指令在计算机上运行时,使所述计算机执行上述技术方案所述的分布式缓存数据离线传输方法。为解决上述技术问题,本专利技术实施例还提供一种计算机设备,包括存储器、处理器及存储在所述存储器上的并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时实现上述技术方案所述的分布式缓存数据离线传输方法。本专利技术的有益效果是:在数据写入主集群后,主集群会将数据实时持久化到磁盘,Redis集群自身保障了内存数据与持久化文件数据的一致性,当主集群故障时,实时解析持久化文件,将数据从持久化文件中同步到副集群,将整个主集群视为一个master,将整个副集群视为一个slave,数据整体传输,保证数据完整性和一致性,不依赖于集群模式的绝对一致性,即不要求主集群与副集群有相同的主节点数量,并且可以省去业务为了保证数据一致性而进行双写,一定程度上提升了业务的处理性能,在主集群服务异常后,可以直接切换到副集群,提升了数据存储服务的容灾能力。本专利技术附加的方面及其优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本专利技术实践了解到。附图说明图1为本专利技术实施例提供的分布式缓存数据离线传输方法的示意性流程图;图2为本专利技术实施例提供的逻辑运行图;图3为本专利技术实施例提供的分布式缓存数据离线传输结构框图。具体实施方式以下结合附图对本专利技术的原理和特征进行描述,所举实例只用于解释本专利技术,并非用于限定本专利技术的范围。图1为本专利技术实施例提供的分布式缓存数据离线传输方法的示意性流程图。图2为本专利技术实施例提供的逻辑运行图。如图1和2所示,该方法包括:主集群将接收到的缓存数据按照预设格式实时存入磁盘持久化文件中;当所述主集群故障时,对所述磁盘持久化文件中的数据依次进行实时解析,获取对应的所述缓存数据,将获取的所述缓存数据存入副集群中。需要说明的是,本专利技术实施例提供的分布式缓存数据离线传输方法是一个在线运行的数据一致性传输方法,在部署Redis集群的时候,将该方法同时部署,并配置主备关系。分布式缓存数据存储服务开启数据持久化服务,使存储服务将数据写在磁盘上。上述实施例中,在数据写入主集群后,主集群会将数据实时持久化到磁盘,Redis集群自身保障了内存数据与持久化文件数据的一致性,当主机群故障时,实时解析持久化文件,将数据从持久化文件中同步到副集群,将整个主集群视为一个master,将整个副集群视为一个slave,数据整体传输,保证数据完整性和一致性,不依赖于集群模式的绝对一致性,即不要求主集群与副集群有相同的主节点数量,并且可以省去业务为了保证数据一致性而进行双写,一定程度上提升了业务的处理性能,在主集群服务异常后,可以直接切换到副集群,提升了数据存储服务的容灾能力。可选地,在一个实施例中,所述对所述磁盘持久化文件中的数据依次进行实时解析,获取对应的所述缓存数据,将获取的所述缓存数据存入副集群中,包括:依次读取磁盘持久化文件中的一条数据,进行如下操作:解析第一行,确认命令参数个数M;解析第n行,确认第n-1个命令参数的长度,根据所述第n-1个命令参数的长度截取第n+1行的数据;其中,n=2、4、6......N,N=2*M;将所有所述n+1行的数据拼凑起来,获得对应的所述缓存数据,将获取的所述缓存数据存入副集群中。例如,持久化文件格式如下:*3$3set$3we3$41234第一行的*3代表这个命令有三个参数;第二行的$3代表第一个参数长度为3;第三行为第一个参数;第四行$3为第二个参数长度为3;第五行为第二个参数;第六行$4为第三个参数长度为4;第七行为第三个参数;此行持久化文件数据代表:setwe31234。上述实施例中,在数据写入主集群后,主集群会将数据实时持久化到磁盘,Redis集群自身保障了内存数据与持久化文件数据的一致性,在主集群故障时,通过上述方式解析磁盘持久化文件中的数据,将解析获得的数据传输至副集群中。主副集群采取异步同步数据的方式,不影响主集群的正常读写速度,在主集群失效时(非主机宕机)可以将数据继续同步到副集群中,直到数据全部同步完成,保证了数据的完整性和一致性。可选地,在一个实施例中,还包括对当前处理的磁盘持久化文件中的数据进行标记与记录,当数据解析完成并成功存入副集群后,标记与记录下一条数据。对所述磁盘持久化文件中的数据依次进行实时解析时如果出现宕机,再次恢复时则根据上一次传输的标记进行续传。该实施例中,对当前处理的数据进行标记与记录,如果出现宕机情况,可以根据标记与记录进行续传。可选地,在一个实施例中,还包括预先设置所述磁盘持久化文件的持久化类型为always。即对所有数据落盘进行实时回访操作,成功后才接收下一条数据,保障数据持久化文件与内存数据的一致性。可选地,在一个实施例中,还包括:当所述磁盘持久化文件中的数据全部解析完成并成功存入副集群后,反馈成功信号。在该实施例中,当主集群故障时,实时解析持久化文件,将数据从持久化文件中同步到副集群,在完成同步后,日志中输出完成标志。如图3所示,本专利技术实施例还提供一种分布式缓存数据离线传输装置,包括本文档来自技高网...

【技术保护点】
1.一种分布式缓存数据离线传输方法,其特征在于,包括:/n主集群将接收到的缓存数据按照预设格式实时存入磁盘持久化文件中;/n当所述主集群故障时,对所述磁盘持久化文件中的数据依次进行实时解析,获取对应的所述缓存数据,将获取的所述缓存数据存入副集群中。/n

【技术特征摘要】
1.一种分布式缓存数据离线传输方法,其特征在于,包括:
主集群将接收到的缓存数据按照预设格式实时存入磁盘持久化文件中;
当所述主集群故障时,对所述磁盘持久化文件中的数据依次进行实时解析,获取对应的所述缓存数据,将获取的所述缓存数据存入副集群中。


2.根据权利要求1所述的方法,其特征在于,所述对所述磁盘持久化文件中的数据依次进行实时解析,获取对应的所述缓存数据,将获取的所述缓存数据存入副集群中,包括:
依次读取磁盘持久化文件中的一条数据,进行如下操作:
解析第一行,确认命令参数个数M;
解析第n行,确认第n-1个命令参数的长度,根据所述第n-1个命令参数的长度截取第n+1行的数据;其中,n=2、4、6......N,N=2*M;
将所有所述n+1行的数据拼凑起来,获得对应的所述缓存数据,将获取的所述缓存数据存入副集群中。


3.根据权利要求2所述的方法,其特征在于,还包括对当前处理的磁盘持久化文件中的数据进行标记与记录,当数据解析完成并成功存入副集群后,标记与记录下一条数据。


4.根据权利要求3所述的方法,其特征在于,还包括:对所述磁盘持久化文件中的数据依次进行实时解析时如果出现宕机,再次恢复时则根据上一次传输的标记进行续传。


5.根据权利要求1至4任一项所述的方法,其特征在于,还包括预先设置所述磁盘持久化文件的持久化类型为always。

【专利技术属性】
技术研发人员:徐东
申请(专利权)人:北京思特奇信息技术股份有限公司
类型:发明
国别省市:北京;11

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

1