CN112231148B - 分布式缓存数据离线传输方法、装置及可读存储介质 - Google Patents
分布式缓存数据离线传输方法、装置及可读存储介质 Download PDFInfo
- Publication number
- CN112231148B CN112231148B CN202011148516.2A CN202011148516A CN112231148B CN 112231148 B CN112231148 B CN 112231148B CN 202011148516 A CN202011148516 A CN 202011148516A CN 112231148 B CN112231148 B CN 112231148B
- Authority
- CN
- China
- Prior art keywords
- data
- cluster
- cache data
- disk
- real time
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1448—Management of the data involved in backup or backup restore
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
- G06F11/1464—Management of the backup or restore process for networked environments
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/82—Solving problems relating to consistency
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明涉及一种分布式缓存数据离线传输方法、装置及可读存储介质。方法包括:主集群将接收到的缓存数据按照预设格式实时存入磁盘持久化文件中;当所述主集群故障时,对所述磁盘持久化文件中的数据依次进行实时解析,获取对应的所述缓存数据,将获取的所述缓存数据存入副集群中。本发明实施例保证了数据的完整性和一致性,不依赖于集群模式的绝对一致性,即不要求主集群与副集群有相同的主节点数量,并且可以省去业务为了保证数据一致性而进行双写,一定程度上提升了业务的处理性能,在主集群服务异常后,可以直接切换到副集群,提升了数据存储服务的容灾能力。
Description
技术领域
本发明涉及非关系型内存数据库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
$3
set
$3
we3
$4
1234
第一行的*3代表这个命令有三个参数;
第二行的$3代表第一个参数长度为3;
第三行为第一个参数;
第四行$3为第二个参数长度为3;
第五行为第二个参数;
第六行$4为第三个参数长度为4;
第七行为第三个参数;
此行持久化文件数据代表:set we3 1234。
上述实施例中,在数据写入主集群后,主集群会将数据实时持久化到磁盘,Redis集群自身保障了内存数据与持久化文件数据的一致性,在主集群故障时,通过上述方式解析磁盘持久化文件中的数据,将解析获得的数据传输至副集群中。主副集群采取异步同步数据的方式,不影响主集群的正常读写速度,在主集群失效时(非主机宕机)可以将数据继续同步到副集群中,直到数据全部同步完成,保证了数据的完整性和一致性。
可选地,在一个实施例中,还包括对当前处理的磁盘持久化文件中的数据进行标记与记录,当数据解析完成并成功存入副集群后,标记与记录下一条数据。对所述磁盘持久化文件中的数据依次进行实时解析时如果出现宕机,再次恢复时则根据上一次传输的标记进行续传。该实施例中,对当前处理的数据进行标记与记录,如果出现宕机情况,可以根据标记与记录进行续传。
可选地,在一个实施例中,还包括预先设置所述磁盘持久化文件的持久化类型为always。即对所有数据落盘进行实时回访操作,成功后才接收下一条数据,保障数据持久化文件与内存数据的一致性。
可选地,在一个实施例中,还包括:当所述磁盘持久化文件中的数据全部解析完成并成功存入副集群后,反馈成功信号。在该实施例中,当主集群故障时,实时解析持久化文件,将数据从持久化文件中同步到副集群,在完成同步后,日志中输出完成标志。
如图3所示,本发明实施例还提供一种分布式缓存数据离线传输装置,包括数据写入模块和数据解析迁移模块。
数据写入模块,用于主集群将接收到的缓存数据按照预设格式实时存入磁盘持久化文件中;数据解析迁移模块,用于当所述主集群故障时,对所述磁盘持久化文件中的数据依次进行实时解析,获取对应的所述缓存数据,将获取的所述缓存数据存入副集群中。
上述实施例中,在数据写入主集群后,主集群会将数据实时持久化到磁盘,Redis集群自身保障了内存数据与持久化文件数据的一致性,主集群故障时,实时解析持久化文件,将数据从持久化文件中同步到副集群,将整个主集群视为一个master,将整个副集群视为一个slave,数据整体传输,保证数据完整性和一致性,不依赖于集群模式的绝对一致性,即不要求主集群与副集群有相同的主节点数量,并且可以省去业务为了保证数据一致性而进行双写,一定程度上提升了业务的处理性能,在主集群服务异常后,可以直接切换到副集群,提升了数据存储服务的容灾能力。
可选地,在一个实施例中,所述数据解析迁移模块用于:依次读取磁盘持久化文件中的一条数据,进行如下操作:
解析第一行,确认命令参数个数M;
解析第n行,确认第n-1个命令参数的长度,根据所述第n-1个命令参数的长度截取第n+1行的数据;其中,n=2、4、6......N,N=2*M;
将所有所述n+1行的数据拼凑起来,获得对应的所述缓存数据,将获取的所述缓存数据存入副集群中。
本发明实施例还提供一种计算机可读存储介质,包括指令,当所述指令在计算机上运行时,使所述计算机执行上述技术方案所述的分布式缓存数据离线传输方法。
本发明实施例还提供一种计算机设备,包括存储器、处理器及存储在所述存储器上的并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时实现上述技术方案所述的分布式缓存数据离线传输方法。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本发明实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (8)
1.一种分布式缓存数据离线传输方法,其特征在于,包括:
主集群将接收到的缓存数据按照预设格式实时存入磁盘持久化文件中;
当所述主集群故障时,对所述磁盘持久化文件中的数据依次进行实时解析,获取对应的所述缓存数据,将获取的所述缓存数据存入副集群中;
所述对所述磁盘持久化文件中的数据依次进行实时解析,获取对应的所述缓存数据,将获取的所述缓存数据存入副集群中,包括:
依次读取磁盘持久化文件中的一条数据,进行如下操作:
解析第一行,确认命令参数个数M;
解析第n行,确认第n-1个命令参数的长度,根据所述第n-1个命令参数的长度截取第n+1行的数据;其中,n=2、4、6......N,N=2*M;
将所有所述n+1行的数据拼凑起来,获得对应的所述缓存数据,将获取的所述缓存数据存入副集群中。
2.根据权利要求1所述的方法,其特征在于,还包括对当前处理的磁盘持久化文件中的数据进行标记与记录,当数据解析完成并成功存入副集群后,标记与记录下一条数据。
3.根据权利要求2所述的方法,其特征在于,还包括:对所述磁盘持久化文件中的数据依次进行实时解析时如果出现宕机,再次恢复时则根据上一次传输的标记进行续传。
4.根据权利要求1至3任一项所述的方法,其特征在于,还包括预先设置所述磁盘持久化文件的持久化类型为always。
5.根据权利要求1至3任一项所述的方法,其特征在于,还包括:当所述磁盘持久化文件中的数据全部解析完成并成功存入副集群后,反馈成功信号。
6.一种分布式缓存数据离线传输装置,其特征在于,包括:
数据写入模块,用于主集群将接收到的缓存数据按照预设格式实时存入磁盘持久化文件中;
数据解析迁移模块,用于当所述主集群故障时,对所述磁盘持久化文件中的数据依次进行实时解析,获取对应的所述缓存数据,将获取的所述缓存数据存入副集群中;
所述数据解析迁移模块用于:依次读取磁盘持久化文件中的一条数据,进行如下操作:
解析第一行,确认命令参数个数M;
解析第n行,确认第n-1个命令参数的长度,根据所述第n-1个命令参数的长度截取第n+1行的数据;其中,n=2、4、6......N,N=2*M;
将所有所述n+1行的数据拼凑起来,获得对应的所述缓存数据,将获取的所述缓存数据存入副集群中。
7.一种计算机可读存储介质,包括指令,其特征在于,当所述指令在计算机上运行时,使所述计算机执行根据权利要求1至5任一项所述的分布式缓存数据离线传输方法。
8.一种计算机设备,包括存储器、处理器及存储在所述存储器上的并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至5任一项所述的分布式缓存数据离线传输方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011148516.2A CN112231148B (zh) | 2020-10-23 | 2020-10-23 | 分布式缓存数据离线传输方法、装置及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011148516.2A CN112231148B (zh) | 2020-10-23 | 2020-10-23 | 分布式缓存数据离线传输方法、装置及可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112231148A CN112231148A (zh) | 2021-01-15 |
CN112231148B true CN112231148B (zh) | 2022-07-05 |
Family
ID=74109396
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011148516.2A Active CN112231148B (zh) | 2020-10-23 | 2020-10-23 | 分布式缓存数据离线传输方法、装置及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112231148B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112861188A (zh) * | 2021-02-01 | 2021-05-28 | 青岛易来智能科技股份有限公司 | 用于多集群的数据汇集***和方法 |
CN112948430B (zh) * | 2021-03-30 | 2022-12-13 | 中国建设银行股份有限公司 | 一种日期数据查询方法和装置 |
CN112988471B (zh) * | 2021-04-27 | 2023-03-14 | 北京邮电大学 | 一种工业互联网***中的数据备份方法、装置及电子设备 |
CN113626240A (zh) * | 2021-08-10 | 2021-11-09 | 深圳华锐金融技术股份有限公司 | 集群故障恢复方法、装置、计算机设备和存储介质 |
CN114844799A (zh) * | 2022-05-27 | 2022-08-02 | 深信服科技股份有限公司 | 一种集群管理方法、装置、主机设备及可读存储介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109815049A (zh) * | 2017-11-21 | 2019-05-28 | 北京金山云网络技术有限公司 | 节点宕机恢复方法、装置、电子设备及存储介质 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107844386B (zh) * | 2016-09-19 | 2020-11-27 | 北京金山云网络技术有限公司 | 一种数据备份、恢复方法及装置 |
CN108763572B (zh) * | 2018-06-06 | 2021-06-22 | 湖南蚁坊软件股份有限公司 | 一种实现Apache Solr读写分离的方法和装置 |
CN111506421A (zh) * | 2020-04-02 | 2020-08-07 | 浙江工业大学 | 一种实现Redis集群的可用性方法 |
-
2020
- 2020-10-23 CN CN202011148516.2A patent/CN112231148B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109815049A (zh) * | 2017-11-21 | 2019-05-28 | 北京金山云网络技术有限公司 | 节点宕机恢复方法、装置、电子设备及存储介质 |
Non-Patent Citations (1)
Title |
---|
大规模分布式***问题集及解决方案(学习);zhenjing;《https://www.cnblogs.com/zhenjing/archive/2011/07/30/distribute_system.html》;20110730;第1-6页 * |
Also Published As
Publication number | Publication date |
---|---|
CN112231148A (zh) | 2021-01-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112231148B (zh) | 分布式缓存数据离线传输方法、装置及可读存储介质 | |
CN108170768B (zh) | 数据库同步方法、装置及可读介质 | |
CN107391628B (zh) | 数据同步方法及装置 | |
US9639588B2 (en) | Operation method and apparatus for data storage system | |
US7516286B1 (en) | Conversion between full-data and space-saving snapshots | |
CN111400408A (zh) | 数据同步方法、装置、设备及存储介质 | |
CN109308170B (zh) | 一种数据处理方法及装置 | |
CN112905390A (zh) | 日志数据备份方法、装置、设备及存储介质 | |
CN106789741A (zh) | 消息队列的消费方法及装置 | |
CN109117086B (zh) | 存储设备数据位置的处理方法、装置、设备及存储介质 | |
CN112612799B (zh) | 一种数据同步方法及终端 | |
CN111753015B (zh) | 支付清算***的数据查询方法及装置 | |
US20220318252A1 (en) | Data streaming between nodes of a database system | |
CN101901193A (zh) | 一种数据的缓冲方法和服务端 | |
JP2008033527A (ja) | ストレージ装置、ディスク装置及びデータ復元方法 | |
CN113779149A (zh) | 消息处理方法、装置、电子设备及可读存储介质 | |
CN112084264B (zh) | 一种日志数据同步方法、装置及服务器 | |
CN113704267A (zh) | 基于ElasticSearch的数据查询方法、***、设备及存储介质 | |
CN117149578A (zh) | 一种任务进度监控方法及相关装置 | |
CN110825758B (zh) | 一种交易处理的方法及装置 | |
CN116303789A (zh) | 多分片多副本数据库并行同步方法、装置及可读介质 | |
DE102010008907A1 (de) | USB-Hostcontroller und Steuerverfahren für USB-Hostcontroller | |
CN116701352A (zh) | 一种数据库数据迁移方法及*** | |
CN114138424B (zh) | 一种虚拟机内存快照生成方法、装置及电子设备 | |
CN116521083A (zh) | 一种分布式存储集群数据的存储方法、装置及介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |