CN113190620A - Redis集群之间数据的同步方法、装置、设备及存储介质 - Google Patents
Redis集群之间数据的同步方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN113190620A CN113190620A CN202110482351.0A CN202110482351A CN113190620A CN 113190620 A CN113190620 A CN 113190620A CN 202110482351 A CN202110482351 A CN 202110482351A CN 113190620 A CN113190620 A CN 113190620A
- Authority
- CN
- China
- Prior art keywords
- redis
- data
- cluster
- redis cluster
- synchronization
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
- G06F16/275—Synchronous replication
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及云技术领域,公开了Redis集群之间数据的同步方法、装置、设备及存储介质,用于提高两个Redis集群之间同步数据的同步效率。Redis集群之间数据的同步方法包括:基于主从协议同步第一Redis集群内的原始数据,复制得到同步数据;通过第一Redis集群的备用节点向第二Redis集群发送同步请求;获取第二Redis集群响应的返回数据指令,并对返回数据指令进行判断;当返回数据指令为同步全量数据指令时,利用多线程和批处理的操作方法向第二Redis集群传输同步数据对应的全量数据;当返回数据指令为同步增量数据指令时,通过多线程和批提交的操作方法向第二Redis集群传输同步数据中的更新数据。本发明还涉及区块链技术,同步数据可存储于区块链中。
Description
技术领域
本发明涉及云技术领域,尤其涉及一种Redis集群之间数据的同步方法、装置、设备及存储介质。
背景技术
Redis是遵守BSD协议(berkeley software distribution)的一个高性能的key-value非关系型数据库。Redis常用于保存热点数据(Redis实例),保证热点数据的快速提取。为了解决多Redis实例协同服务问题,推出了Redis集群,Redis集群可以将键值按照一定算法合理分配到各个实例分片上,同时各个实例节点协调沟通,共同对外承担一致服务。
在现有的技术中,Redis集群中存在主从节点之间的同步,也存在集群之间的同步方案,具体的,在Redis集群中的主服务器获取到待同步数据后,通过预先配置的消息队列暂存待同步数据,以供另一主服务器从该主服务器的消息队列读取待同步数据,并将待同步数据写入上述另一主服务器,从而在不影响主服务器获取数据的前提下实现了主服务器间的数据同步。但是利用上述方案进行Redis集群之间的同步时,两个Redis集群之间同步数据的同步效率低下。
发明内容
本发明提供了一种Redis集群之间数据的同步方法、装置、设备及存储介质,用于提高两个Redis集群之间同步数据的同步效率。
本发明第一方面提供了一种Redis集群之间数据的同步方法,包括:RedisX复制组件基于主从协议复制生成第一Redis集群中实例的从节点,并同步所述第一Redis集群内的原始数据,复制得到同步数据,完成所述第一Redis集群内部主从节点的同步;RedisX复制组件利用管理协议生成所述第一Redis集群的备用节点,并通过所述第一Redis集群的备用节点向第二Redis集群发送同步请求;RedisX复制组件获取所述第二Redis集群根据所述同步请求响应的返回数据指令,并判断所述返回数据指令为同步全量数据指令或同步增量数据指令;当所述返回数据指令为同步全量数据指令时,RedisX复制组件利用多线程和批处理的操作方法向所述第二Redis集群传输所述同步数据对应的全量数据,完成所述第一Redis集群与所述第二Redis集群之间的同步;当所述返回数据指令为同步增量数据指令时,RedisX复制组件通过多线程和批提交的操作方法向所述第二Redis集群传输所述同步数据中的更新数据,完成所述第一Redis集群与所述第二Redis集群之间的同步。
可选的,在本发明第一方面的第一种实现方式中,所述RedisX复制组件基于主从协议复制生成第一Redis集群中实例的从节点,并同步所述第一Redis集群内的原始数据,复制得到同步数据,完成所述第一Redis集群内部主从节点的同步包括:RedisX复制组件利用协调组件按照主从协议的要求注册第一Redis集群中实例的从节点;RedisX复制组件通过所述协调组件获取所述第一Redis集群中实例的原始数据,并将所述第一Redis集群中实例的原始数据存储至对应的从节点中,得到所述从节点的同步数据,完成所述第一Redis集群内部主从节点的同步。
可选的,在本发明第一方面的第二种实现方式中,所述RedisX复制组件利用管理协议生成所述第一Redis集群的备用节点,并通过所述第一Redis集群的备用节点向第二Redis集群发送同步请求包括:RedisX复制组件利用管理协议生成所述第一Redis集群的备用节点;RedisX复制组件读取存储在协调组件中的数据偏移量,并通过所述数据偏移量生成同步请求;RedisX复制组件基于所述第一Redis集群的备用节点向第二Redis集群发送所述同步请求。
可选的,在本发明第一方面的第三种实现方式中,所述当所述返回数据指令为同步全量数据指令时,RedisX复制组件利用多线程和批处理的操作方法向所述第二Redis集群传输所述同步数据对应的全量数据,完成所述第一Redis集群与所述第二Redis集群之间的同步包括:当所述返回数据指令为同步全量数据指令时,RedisX复制组件将所述RedisX复制组件的从节点转化为读写节点;RedisX复制组件基于所述读写节点并按照多线程和批处理的操作方法,剔除RedisX复制组件中从节点中的同步数据,并获取接收到返回数据指令时第一Redis集群中的数据,得到全量数据;RedisX复制组件利用文件同步备份工具向所述第二Redis集群传输所述全量数据。
可选的,在本发明第一方面的第四种实现方式中,所述当所述返回数据指令为同步增量数据指令时,RedisX复制组件通过多线程和批提交的操作方法向所述第二Redis集群传输所述同步数据中的更新数据,完成所述第一Redis集群与所述第二Redis集群之间的同步包括:当所述返回数据指令为同步增量数据指令时,RedisX复制组件通过协调组件中的更新日志确定更新时刻,并将所述更新时刻以后的数据确定为更新数据;RedisX复制组件通过多线程和批提交的操作方法向所述第二Redis集群传输所述同步数据中的更新数据,完成所述第一Redis集群与所述第二Redis集群之间的同步。
可选的,在本发明第一方面的第五种实现方式中,所述RedisX复制组件通过多线程和批提交的操作方法向所述第二Redis集群传输所述同步数据中的更新数据,完成所述第一Redis集群与所述第二Redis集群之间的同步包括:RedisX复制组件按照多线程的处理方法获取所述第一Redis集群的slot分布,并计算所述更新数据的键值对哈希值;RedisX复制组件将所述更新数据的键值对哈希值映射在所述第一Redis集群的slot分布中,得到映射数据;RedisX复制组件利用预置传输协议,并按照预置满足条件向所述第二Redis集群传输所述映射数据,完成所述第一Redis集群与所述第二Redis集群之间的同步。
可选的,在本发明第一方面的第六种实现方式中,在所述RedisX复制组件基于主从协议复制生成第一Redis集群中实例的从节点,并同步所述第一Redis集群内的原始数据,复制得到同步数据,完成所述第一Redis集群内部主从节点的同步之后,所述Redis集群之间数据的同步方法还包括:RedisX复制组件通过管理组件对RedisX集群进行监控。
本发明第二方面提供了一种Redis集群之间数据的同步装置,包括:复制模块,RedisX复制组件用于基于主从协议复制生成第一Redis集群中实例的从节点,并同步所述第一Redis集群内的原始数据,复制得到同步数据,完成所述第一Redis集群内部主从节点的同步;发送模块,RedisX复制组件用于利用管理协议生成所述第一Redis集群的备用节点,并通过所述第一Redis集群的备用节点向第二Redis集群发送同步请求;判断模块,RedisX复制组件用于获取所述第二Redis集群根据所述同步请求响应的返回数据指令,并判断所述返回数据指令为同步全量数据指令或同步增量数据指令;第一同步模块,当所述返回数据指令为同步全量数据指令时,RedisX复制组件用于利用多线程和批处理的操作方法向所述第二Redis集群传输所述同步数据对应的全量数据,完成所述第一Redis集群与所述第二Redis集群之间的同步;第二同步模块,当所述返回数据指令为同步增量数据指令时,RedisX复制组件用于通过多线程和批提交的操作方法向所述第二Redis集群传输所述同步数据中的更新数据,完成所述第一Redis集群与所述第二Redis集群之间的同步。
可选的,在本发明第二方面的第一种实现方式中,所述复制模块具体用于:RedisX复制组件利用协调组件按照主从协议的要求注册第一Redis集群中实例的从节点;RedisX复制组件通过所述协调组件获取所述第一Redis集群中实例的原始数据,并将所述第一Redis集群中实例的原始数据存储至对应的从节点中,得到所述从节点的同步数据,完成所述第一Redis集群内部主从节点的同步。
可选的,在本发明第二方面的第二种实现方式中,所述发送模块具体用于:RedisX复制组件利用管理协议生成所述第一Redis集群的备用节点;RedisX复制组件读取存储在协调组件中的数据偏移量,并通过所述数据偏移量生成同步请求;RedisX复制组件基于所述第一Redis集群的备用节点向第二Redis集群发送所述同步请求。
可选的,在本发明第二方面的第三种实现方式中,所述第一同步模块具体用于:当所述返回数据指令为同步全量数据指令时,RedisX复制组件将所述RedisX复制组件的从节点转化为读写节点;RedisX复制组件基于所述读写节点并按照多线程和批处理的操作方法,剔除RedisX复制组件中从节点中的同步数据,并获取接收到返回数据指令时第一Redis集群中的数据,得到全量数据;RedisX复制组件利用文件同步备份工具向所述第二Redis集群传输所述全量数据。
可选的,在本发明第二方面的第四种实现方式中,所述第二同步模块包括:确定单元,当所述返回数据指令为同步增量数据指令时,RedisX复制组件用于通过协调组件中的更新日志确定更新时刻,并将所述更新时刻以后的数据确定为更新数据;同步单元,RedisX复制组件用于通过多线程和批提交的操作方法向所述第二Redis集群传输所述同步数据中的更新数据,完成所述第一Redis集群与所述第二Redis集群之间的同步。
可选的,在本发明第二方面的第五种实现方式中,所述同步单元具体用于:RedisX复制组件按照多线程的处理方法获取所述第一Redis集群的slot分布,并计算所述更新数据的键值对哈希值;RedisX复制组件将所述更新数据的键值对哈希值映射在所述第一Redis集群的slot分布中,得到映射数据;RedisX复制组件利用预置传输协议,并按照预置满足条件向所述第二Redis集群传输所述映射数据,完成所述第一Redis集群与所述第二Redis集群之间的同步。
可选的,在本发明第二方面的第六种实现方式中,所述Redis集群之间数据的同步装置还包括:监控模块,RedisX复制组件用于通过管理组件对RedisX集群进行监控。
本发明第三方面提供了一种Redis集群之间数据的同步设备,包括:存储器和至少一个处理器,所述存储器中存储有指令;所述至少一个处理器调用所述存储器中的所述指令,以使得所述Redis集群之间数据的同步设备执行上述的Redis集群之间数据的同步方法。
本发明的第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述的Redis集群之间数据的同步方法。
本发明提供的技术方案中,RedisX复制组件基于主从协议复制生成第一Redis集群中实例的从节点,并同步所述第一Redis集群内的原始数据,复制得到同步数据,完成所述第一Redis集群内部主从节点的同步;RedisX复制组件利用管理协议生成所述第一Redis集群的备用节点,并通过所述第一Redis集群的备用节点向第二Redis集群发送同步请求;RedisX复制组件获取所述第二Redis集群根据所述同步请求响应的返回数据指令,并判断所述返回数据指令为同步全量数据指令或同步增量数据指令;当所述返回数据指令为同步全量数据指令时,RedisX复制组件利用多线程和批处理的操作方法向所述第二Redis集群传输所述同步数据对应的全量数据,完成所述第一Redis集群与所述第二Redis集群之间的同步;当所述返回数据指令为同步增量数据指令时,RedisX复制组件通过多线程和批提交的操作方法向所述第二Redis集群传输所述同步数据中的更新数据,完成所述第一Redis集群与所述第二Redis集群之间的同步。本发明实施例中,在完成第一Redis集群内部主从节点的同步之后,通过生成第一Redis集群的备用节点,建立第一Redis集群和第二Redis集群之间的连接,再根据不同的第二Redis集群响应的返回数据指令,向第二Redis集群同步对应的数据。灵活实现了两个不同Redis集群之间的数据同步,采用不同的同步处理方法同步不同的同步数据,提高了两个Redis集群之间同步数据的同步效率。
附图说明
图1为本发明实施例中Redis集群之间数据的同步方法的一个实施例示意图;
图2为本发明实施例中Redis集群之间数据的同步方法的另一个实施例示意图;
图3为本发明实施例中Redis集群之间数据的同步装置的一个实施例示意图;
图4为本发明实施例中Redis集群之间数据的同步装置的另一个实施例示意图;
图5为本发明实施例中Redis集群之间数据的同步设备的一个实施例示意图。
具体实施方式
本发明实施例提供了一种Redis集群之间数据的同步方法、装置、设备及存储介质,用于提高两个Redis集群之间同步数据的同步效率。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”或“具有”及其任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
为便于理解,下面对本发明实施例的具体流程进行描述,请参阅图1,本发明实施例中Redis集群之间数据的同步方法的一个实施例包括:
101、RedisX复制组件基于主从协议复制生成第一Redis集群中实例的从节点,并同步第一Redis集群内的原始数据,复制得到同步数据,完成第一Redis集群内部主从节点的同步;
可以理解的是,本发明的执行主体可以为Redis集群之间数据的同步装置,还可以是Redis集群之间数据的同步终端中的RedisX复制组件或者服务器,具体此处不做限定。本发明实施例以RedisX复制组件为执行主体为例进行说明。
在进行集群之间的数据同步时,首先需要明确一个集群系统的内部结构。在部署一个集群系统构架时,不同机房的内部分别部署一套RedisX&ManagerX,用于负责将本地机房的数据复制(传输)到向对端机房内。当本地机房为从机房时,不向对端同步数据(从机房不真正想主机房同步数据),同时针对约定的Redis集群,开启读写分离状态。具体的,一个集群系统构架中至少包括:
1、Redis集群:Redis集群是一个分布式(distributed)、容错(fault-tolerant)的Redis实现,Redis集群可以使用的功能是普通单机Redis所能使用的功能的一个子集(subset)。Redis集群中不存在中心(central)节点或者代理(proxy)节点,Redis集群的其中一个主要设计目标是达到线性可扩展性(linear scalability)。Redis集群提供了一种运行Redis的方式,其中数据在多个Redis集群节点间自动分区。Redis集群还在分区期间提供一定程度的可用性,即在实际情况下能够在某些节点发生故障或无法通信时继续运行。
2、RedisX复制组件:用于复制Redis集群中主节点的实例,每个RedisX复制组件负责复制不同的Redis集群中的实例,也可以同时复制一个或多个Redis集群中主节点携带的数据。
3、管理组件:一般管理组件为ManagerX,管理组件用于管理所有的RedisX复制组件中的从节点,并记录各个RedisX复制组件的实例信息,同时记录从节点的每秒处理的事务数量(transactions per second,TPS)等。此外管理组件中的数据会持久化到MySQL中,并可以利用MyQSL自带的复制功能同步到对端机房中。
4、协调组件:一般协调组件为Zookeeper,Zookeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。
需要强调的是,为进一步保证上述同步数据的私密和安全性,上述同步数据还可以存储于一区块链的节点中。
102、RedisX复制组件利用管理协议生成第一Redis集群的备用节点,并通过第一Redis集群的备用节点向第二Redis集群发送同步请求;
在进行第一Redis集群与第二Redis集群之间的同步过程之前,需要对RedisX复制组件进行伪装,利用管理协议将RedisX复制组件伪装成第一Redis集群的备用节点,只有这样才能实现两个不同Redis集群之间的数据同步。在生成第一Redis集群的备用节点之后,即可以通过第一Redis集群的备用节点向第二Redis集群发送同步请求。
103、RedisX复制组件获取第二Redis集群根据同步请求响应的返回数据指令,并判断返回数据指令为同步全量数据指令或同步增量数据指令;
在RedisX复制组件通过第一Redis集群的备用节点向第二Redis集群发送同步请求之后,第二Redis集群会根据同步请求生成一个响应,这里的响应指的是返回数据指令,返回数据指令用于指示需要第一Redis集群向第二Redis集群返回什么样的数据。具体的,返回数据指令可以为同步全量数据指令、同步增量数据指令或不同步数据指令,RedisX复制组件根据不同的返回数据指令做出不同的操作,向第二Redis集群返回返回数据指令对应的数据,完成第一Redis集群与第二Redis集群之间的同步。
104、当返回数据指令为同步全量数据指令时,RedisX复制组件利用多线程和批处理的操作方法向第二Redis集群传输同步数据对应的全量数据,完成第一Redis集群与第二Redis集群之间的同步;
这里的同步全量数据指令在本申请中指的是在一定的周期中,把当前第一Redis集群在周期时间内所有数据复制(同步)到第二Redis集群的指令。需要说明的是,这里同步的全量数据指的是自接收到返回数据指令此时刻之后,第一Redis集群中的数据,且在获取接收到返回数据指令时第一Redis集群中的数据时,利用到了多线程和批处理的操作方法,提高了处理数据的效率。
105、当返回数据指令为同步增量数据指令时,RedisX复制组件通过多线程和批提交的操作方法向第二Redis集群传输同步数据中的更新数据,完成第一Redis集群与第二Redis集群之间的同步。
当返回数据指令为同步增量数据指令时,RedisX复制组件需要向第二Redis集群同步增量数据,这里同步增量数据指的是在上一次同步全量数据的基础上,同步变化后的更新数据,即RedisX复制组件分别记录上一次同步全量数据之后每次数据的变化,并将变化的更新数据同步到第二Redis集群中。
在获取更新数据之前,RedisX复制组件会判断内部主从节点同步过后的数据是否发生变化,若数据发生变化,则记录每次数据变化的状态情况及内容信息,得到更新数据。这样的同步方式在其所需同步空间最少的情况下,进行同步的速度最快。RedisX复制组件确定了更新数据之后,即可通过文件同步备份工具和传输协议向第二Redis集群传输同步更新数据,完成第一Redis集群与第二Redis集群之间的同步。
本发明实施例中,在完成第一Redis集群内部主从节点的同步之后,通过生成第一Redis集群的备用节点,建立第一Redis集群和第二Redis集群之间的连接,再根据不同的第二Redis集群响应的返回数据指令,向第二Redis集群同步对应的数据。灵活实现了两个不同Redis集群之间的数据同步,采用不同的同步处理方法同步不同的同步数据,提高了两个Redis集群之间同步数据的同步效率。
请参阅图2,本发明实施例中Redis集群之间数据的同步方法的另一个实施例包括:
201、RedisX复制组件基于主从协议复制生成第一Redis集群中实例的从节点,并同步第一Redis集群内的原始数据,复制得到同步数据,完成第一Redis集群内部主从节点的同步;
具体的,RedisX复制组件利用协调组件按照主从协议的要求注册第一Redis集群中实例的从节点;RedisX复制组件通过协调组件获取第一Redis集群中实例的原始数据,并将第一Redis集群中实例的原始数据存储至对应的从节点中,得到从节点的同步数据,完成第一Redis集群内部主从节点的同步。
本申请需要实现两个不同Redis集群之间的数据同步,因此设定存在第一Redis集群和第二Redis集群,由第一Redis集群向第二Redis集群中同步(传输)同步数据。
在进行两个Redis集群之间的同步操作时,首先需要进行一个Redis集群系统内部的主从节点同步,也就是利用RedisX复制组件通过复制Redis集群的主节点,进而生成从节点的同步过程。Redis集群利用RedisX复制组件进行主从节点同步的过程如下:
1、启动RedisX复制组件,并通过主从协议在协调组件中注册Redis集群主节点对应的从节点,并提交注册从节点的节点状态,这里注册得到的从节点为单个或者多个Redis集群实例的从节点;
2、管理组件(ManagerX)获取Redis集群中每个主节点(实例)上的原始数据;
3、管理组件通过协调组件(Zookeeper)向RedisX复制组件中的从节点发送数据同步、暂停、停止、回收等命令;
4、将Redis集群中每个主节点上的原始数据复制至RedisX复制组件的对应从节点上,生成Redis集群的从节点的同步数据,完成Redis集群内部主从节点的同步。
需要强调的是,为进一步保证上述同步数据的私密和安全性,上述同步数据还可以存储于一区块链的节点中。
202、RedisX复制组件通过管理组件对RedisX集群进行监控;
在RedisX复制组件完成主从节点同步或第一Redis集群和第二Redis集群之间的同步时,管理组件通过协调组件获取Redis集群的从节点上报的信息数据,如同步的瞬时系统吞吐量(TPS),同步判断RedisX复制组件中的从节点是否存在异常。
管理组件对RedisX复制组件进行监控的过程中,需要说明的是:
1)在利用管理组件对RedisX复制组件进行监控的过程,是基于Redis的管理协议,循环Randon获取部分key,并在主从节点之间进行数据类型及值比较的过程,当主从节点之间的数据类型及值不一致时,判定为异常。当不存在数据复制延迟且异常率大于阈值如0.5%时,认为复制异常,需要人工分析处理(异常率的计算逻辑为,随机获取1000个key,分别两个机房比较其值、数据类型,出现5个数据的值或者数据类型不一致,则异常率为0.5%)。
2)针对RedisX复制组件维护重启等情况下的数据一致性,通过拦截系统信号并且将RedisX复制组件内存中数据全部刷新至从机房Redis节点后才能退出。
3)当存在网络异常时,RedisX复制组件需要重新连接第一Redis集群中的实例并自动重试写入,若待写入数据达到一定的内存,将停止从第一Redis集群中获取更新请求;当存在数据异常,如第一Redis集群返回数据类型错误等时将跳过该数据。
4)针对低TPS的第一Redis集群中的实例,RedisX复制组件实现通过对多个第一Redis集群实例进行同时复制,并同步写入到RedisX复制组件的从节点上;而针对高TPS的第一Redis集群中的实例,以单从节点复制单实例进行同步。
5)针对第一Redis集群内的主节点,对其日志进行实时监控,一旦发现第一Redis集群内的主节点存在异常,立即通过短信实时发送警告通知。
当Redis集群存在异常等情况时,由RedisX复制组件探测并记录到协调组件中,如否发生切换、复制是否异常、是否延迟等。针对这些情况,综合判断并发送报警,确保整个复制高可用。而管理组件可以监控所有Redis集群的复制状态,管理所有RedisX复制组件的从节点,即所有的RedisX复制组件的复制操作均通过ManagerX进行。
203、RedisX复制组件利用管理协议生成第一Redis集群的备用节点,并通过第一Redis集群的备用节点向第二Redis集群发送同步请求;
具体的,RedisX复制组件利用管理协议生成第一Redis集群的备用节点;RedisX复制组件读取存储在协调组件中的数据偏移量,并通过数据偏移量生成同步请求;RedisX复制组件基于第一Redis集群的备用节点向第二Redis集群发送同步请求。
在进行第一Redis集群与第二Redis集群之间的同步过程之前,需要对RedisX复制组件进行伪装,利用管理协议将RedisX复制组件伪装成第一Redis集群的备用节点,只有这样才能实现两个不同Redis集群之间的数据同步。在生成第一Redis集群的备用节点之后,即可以通过第一Redis集群的备用节点向第二Redis集群发送同步请求。
这里的同步请求中包括存储在协调组件中的数据偏移量,这里的偏移量用于指示RedisX复制组件在上次退出时保存的偏移量,若协调组件中不存在数据偏移量时,则直接默认为-1。通过数据偏移量可以生成对应的同步请求,并由第一Redis集群的备用节点向第二Redis集群发送同步请求,等待第二Redis集群响应的返回数据指令即可。
204、RedisX复制组件获取第二Redis集群根据同步请求响应的返回数据指令,并判断返回数据指令为同步全量数据指令或同步增量数据指令;
在RedisX复制组件通过第一Redis集群的备用节点向第二Redis集群发送同步请求之后,第二Redis集群会根据同步请求生成一个响应,这里的响应指的是返回数据指令,返回数据指令用于指示需要第一Redis集群向第二Redis集群返回什么样的数据。具体的,返回数据指令可以为同步全量数据指令、同步增量数据指令或不同步数据指令,RedisX复制组件根据不同的返回数据指令做出不同的操作,向第二Redis集群返回返回数据指令对应的数据,完成第一Redis集群与第二Redis集群之间的同步。
205、当返回数据指令为同步全量数据指令时,RedisX复制组件利用多线程和批处理的操作方法向第二Redis集群传输同步数据对应的全量数据,完成第一Redis集群与第二Redis集群之间的同步;
具体的,当返回数据指令为同步全量数据指令时,RedisX复制组件将RedisX复制组件的从节点转化为读写节点;RedisX复制组件基于读写节点并按照多线程和批处理的操作方法,剔除RedisX复制组件中从节点中的同步数据,并获取接收到返回数据指令时第一Redis集群中的数据,得到全量数据;RedisX复制组件利用文件同步备份工具向第二Redis集群传输全量数据。
需要说明的是,第二Redis集群相应的返回数据指令不同,RedisX复制组件向第二Redis集群同步的数据不同。在进行全量数据同步时,需要将在接收到返回数据指令之前,RedisX复制组件的从节点中的同步数据删除。因此,首先需要将RedisX复制组件中的从节点转化为读写节点,即可以对从节点上的数据进行读操作或写操作。这里需要在从节点上剔除接收到返回数据指令之前RedisX复制组件中的同步数据,具体的,在剔除从节点中的同步数据时,不能使用flushdb命令或flushall命令等类似的命令,避免长时间刷新数据导致第一Redis集群的实例内部master-slave切换,只能通过使用游标scan批量获取实例对应的key,并将其删除的处理方法。
此外,为了快速剔除RedisX复制组件中的同步数据,引入了多线程及批处理的处理手段(批处理根据Redis集群中单实例的pipeline实现),由于在同步全量数据阶段所追求的是数据吞吐量,在利用scan获取实例对应的key、清除从节点上的同步数据以及写入全量数据时,均采用了较大的批处理,如每128个key作为一批,使得剔除同步数据和写入全量数据的过程可以快速完成。
206、当返回数据指令为同步增量数据指令时,RedisX复制组件通过多线程和批提交的操作方法向第二Redis集群传输同步数据中的更新数据,完成第一Redis集群与第二Redis集群之间的同步。
具体的,当返回数据指令为同步增量数据指令时,RedisX复制组件通过协调组件中的更新日志确定更新时刻,并将更新时刻以后的数据确定为更新数据;RedisX复制组件通过多线程和批提交的操作方法向第二Redis集群传输同步数据中的更新数据,完成第一Redis集群与第二Redis集群之间的同步。
更新数据的确定是在RedisX复制组件进行一次同步之后,通过协调组件中的更新日志确定更新时刻,并将更新时刻以后产生变化的数据确定为更新数据(增量数据),多线程和批提交的操作方法向第二Redis集群传输同步数据中的更新数据,即可完成第一Redis集群与第二Redis集群之间的同步。可以理解的是,这里的更新时刻为上一次数据同步完成后的时刻。
在进行第一Redis集群与第二Redis集群之间的同步时,具体包括:RedisX复制组件按照多线程的处理方法获取第一Redis集群的slot分布,并计算更新数据的键值对哈希值;RedisX复制组件将更新数据的键值对哈希值映射在第一Redis集群的slot分布中,得到映射数据;RedisX复制组件利用预置传输协议,并按照预置满足条件向第二Redis集群传输映射数据,完成第一Redis集群与第二Redis集群之间的同步。
在执行同步增量数据指令时,在当前网络延迟较为明显的情况下,可能出现待同步的增量数据的TPS跟不上Redis集群节点的写入操作的情况,从而导致复制延迟,最终可能导致Redis集群节点内存异常、OOM等。因此,在本申请中通过引入增量模式的多线程处理方法,以解决数据复制延迟问题,多线程的关键点是要确保同一个key只会在一个线程中同步。具体的实现步骤为:
1、基于多线程的处理方法获取更新数据对应的第一Redis集群实例对应的slot分布;
2、计算更新数据对应的键值对哈希值;
3、将更新数据对应的键值对哈希值映射至对应的slot分布上,这里具体的操作方法是根据键值对哈希值对slot分布取模,得到映射数据;
4、将同一个slot分布对应的键值对相同的映射数据保存在一起;
5、利用文件同步备份工具和传输协议,并按照预置满足条件向第二Redis集群传输映射数据,具体的,这里的预置满足条件可以为满足超过预置约定时长(如满足约定时长200ms)或者满足预置批大小(如满足16个键值对的批大小)。
此外,在执行同步增量数据指令时,还采用了批量提交的处理方法,和同步全量数据阶段不同的是,这里批提交的批数量相对较小,如16key一批。同时存在时限要求,如当键值对超过200ms没有进行同步时,则不管批量是否满足16key都会进行一次同步操作。采用批提交及多线程同步数据之后,极大的提高了同步的数据的TPS。另外,针对产品秒杀活动操作等带来的热key场景,允许不实时同步该Key,而是间隔一定的时间进行值复制(同步)。
进一步说明的是,Redis对外分发数据的预置传输协议包括两种协议:FullSync协议和PSYNC协议。数据传输服务可强制指定服务端使用FullSync传输数据,服务端在通过FullSync协议传输完成全量数据之后会自动切换到PSYNC协议,以传输增量数据。同时,在服务端处于PSYNC协议阶段,如果数据传输服务断开重新连接,服务端保留断开前的传输偏移量,可以继续使用PSYNC增量同步。为保证数据的完整,RedisX实现了这两种协议。RedisX复制组件的从节点在与管理组件断开连接而后重新连接的时候,默认是使用新的PSYNC协议同步方法,而不是SYNC协议同步方法,因为在断开连接而后重新连接时,RedisX复制组件的从节点是包含数据的,只是可能落后于第一Redis集群,因此没必要又进行一次全量同步。这种同步方式同样适用于两个Redis集群之间的同步。
本发明实施例中,在完成第一Redis集群内部主从节点的同步之后,通过生成第一Redis集群的备用节点,建立第一Redis集群和第二Redis集群之间的连接,再根据不同的第二Redis集群响应的返回数据指令,向第二Redis集群同步对应的数据。灵活实现了两个不同Redis集群之间的数据同步,采用不同的同步处理方法同步不同的同步数据,提高了两个Redis集群之间同步数据的同步效率。
上面对本发明实施例中Redis集群之间数据的同步方法进行了描述,下面对本发明实施例中Redis集群之间数据的同步装置进行描述,请参阅图3,本发明实施例中Redis集群之间数据的同步装置一个实施例包括:
复制模块301,RedisX复制组件用于基于主从协议复制生成第一Redis集群中实例的从节点,并同步所述第一Redis集群内的原始数据,复制得到同步数据,完成所述第一Redis集群内部主从节点的同步;
发送模块302,RedisX复制组件用于利用管理协议生成所述第一Redis集群的备用节点,并通过所述第一Redis集群的备用节点向第二Redis集群发送同步请求;
判断模块303,RedisX复制组件用于获取所述第二Redis集群根据所述同步请求响应的返回数据指令,并判断所述返回数据指令为同步全量数据指令或同步增量数据指令;
第一同步模块304,当所述返回数据指令为同步全量数据指令时,RedisX复制组件用于利用多线程和批处理的操作方法向所述第二Redis集群传输所述同步数据对应的全量数据,完成所述第一Redis集群与所述第二Redis集群之间的同步;
第二同步模块305,当所述返回数据指令为同步增量数据指令时,RedisX复制组件用于通过多线程和批提交的操作方法向所述第二Redis集群传输所述同步数据中的更新数据,完成所述第一Redis集群与所述第二Redis集群之间的同步。
本发明实施例中,在完成第一Redis集群内部主从节点的同步之后,通过生成第一Redis集群的备用节点,建立第一Redis集群和第二Redis集群之间的连接,再根据不同的第二Redis集群响应的返回数据指令,向第二Redis集群同步对应的数据。灵活实现了两个不同Redis集群之间的数据同步,采用不同的同步处理方法同步不同的同步数据,提高了两个Redis集群之间同步数据的同步效率。
请参阅图4,本发明实施例中Redis集群之间数据的同步装置的另一个实施例包括:
复制模块301,RedisX复制组件用于基于主从协议复制生成第一Redis集群中实例的从节点,并同步所述第一Redis集群内的原始数据,复制得到同步数据,完成所述第一Redis集群内部主从节点的同步;
发送模块302,RedisX复制组件用于利用管理协议生成所述第一Redis集群的备用节点,并通过所述第一Redis集群的备用节点向第二Redis集群发送同步请求;
判断模块303,RedisX复制组件用于获取所述第二Redis集群根据所述同步请求响应的返回数据指令,并判断所述返回数据指令为同步全量数据指令或同步增量数据指令;
第一同步模块304,当所述返回数据指令为同步全量数据指令时,RedisX复制组件用于利用多线程和批处理的操作方法向所述第二Redis集群传输所述同步数据对应的全量数据,完成所述第一Redis集群与所述第二Redis集群之间的同步;
第二同步模块305,当所述返回数据指令为同步增量数据指令时,RedisX复制组件用于通过多线程和批提交的操作方法向所述第二Redis集群传输所述同步数据中的更新数据,完成所述第一Redis集群与所述第二Redis集群之间的同步。
可选的,复制模块301具体用于:
RedisX复制组件利用协调组件按照主从协议的要求注册第一Redis集群中实例的从节点;
RedisX复制组件通过所述协调组件获取所述第一Redis集群中实例的原始数据,并将所述第一Redis集群中实例的原始数据存储至对应的从节点中,得到所述从节点的同步数据,完成所述第一Redis集群内部主从节点的同步。
可选的,发送模块302具体用于:
RedisX复制组件利用管理协议生成所述第一Redis集群的备用节点;
RedisX复制组件读取存储在协调组件中的数据偏移量,并通过所述数据偏移量生成同步请求;
RedisX复制组件基于所述第一Redis集群的备用节点向第二Redis集群发送所述同步请求。
可选的,第一同步模块304具体用于:
当所述返回数据指令为同步全量数据指令时,RedisX复制组件将所述RedisX复制组件的从节点转化为读写节点;
RedisX复制组件基于所述读写节点并按照多线程和批处理的操作方法,剔除RedisX复制组件中从节点中的同步数据,并获取接收到返回数据指令时第一Redis集群中的数据,得到全量数据;
RedisX复制组件利用文件同步备份工具向所述第二Redis集群传输所述全量数据。
可选的,第二同步模块305包括:
确定单元3051,当所述返回数据指令为同步增量数据指令时,RedisX复制组件用于通过协调组件中的更新日志确定更新时刻,并将所述更新时刻以后的数据确定为更新数据;
同步单元3052,RedisX复制组件用于通过多线程和批提交的操作方法向所述第二Redis集群传输所述同步数据中的更新数据,完成所述第一Redis集群与所述第二Redis集群之间的同步。
可选的,同步单元3052具体用于:
RedisX复制组件按照多线程的处理方法获取所述第一Redis集群的slot分布,并计算所述更新数据的键值对哈希值;
RedisX复制组件将所述更新数据的键值对哈希值映射在所述第一Redis集群的slot分布中,得到映射数据;
RedisX复制组件利用预置传输协议,并按照预置满足条件向所述第二Redis集群传输所述映射数据,完成所述第一Redis集群与所述第二Redis集群之间的同步。
可选的,Redis集群之间数据的同步装置还包括:
监控模块306,RedisX复制组件用于通过管理组件对RedisX集群进行监控。
本发明实施例中,在完成第一Redis集群内部主从节点的同步之后,通过生成第一Redis集群的备用节点,建立第一Redis集群和第二Redis集群之间的连接,再根据不同的第二Redis集群响应的返回数据指令,向第二Redis集群同步对应的数据。灵活实现了两个不同Redis集群之间的数据同步,采用不同的同步处理方法同步不同的同步数据,提高了两个Redis集群之间同步数据的同步效率。
上面图3和图4从模块化功能实体的角度对本发明实施例中的Redis集群之间数据的同步装置进行详细描述,下面从硬件处理的角度对本发明实施例中Redis集群之间数据的同步设备进行详细描述。
图5是本发明实施例提供的一种Redis集群之间数据的同步设备的结构示意图,该Redis集群之间数据的同步设备500可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(central processing units,CPU)510(例如,一个或一个以上处理器)和存储器520,一个或一个以上存储应用程序533或数据532的存储介质530(例如一个或一个以上海量存储设备)。其中,存储器520和存储介质530可以是短暂存储或持久存储。存储在存储介质530的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对Redis集群之间数据的同步设备500中的一系列指令操作。更进一步地,处理器510可以设置为与存储介质530通信,在Redis集群之间数据的同步设备500上执行存储介质530中的一系列指令操作。
Redis集群之间数据的同步设备500还可以包括一个或一个以上电源540,一个或一个以上有线或无线网络接口550,一个或一个以上输入输出接口560,和/或,一个或一个以上操作系统531,例如Windows Serve,Mac OS X,Unix,Linux,FreeBSD等等。本领域技术人员可以理解,图5示出的Redis集群之间数据的同步设备结构并不构成对Redis集群之间数据的同步设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
本发明还提供一种Redis集群之间数据的同步设备,所述计算机设备包括存储器和处理器,存储器中存储有计算机可读指令,计算机可读指令被处理器执行时,使得处理器执行上述各实施例中的所述Redis集群之间数据的同步方法的步骤。
本发明还提供一种计算机可读存储介质,该计算机可读存储介质可以为非易失性计算机可读存储介质,该计算机可读存储介质也可以为易失性计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述指令在计算机上运行时,使得计算机执行所述Redis集群之间数据的同步方法的步骤。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
本发明所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种Redis集群之间数据的同步方法,其特征在于,所述Redis集群之间数据的同步方法包括:
RedisX复制组件基于主从协议复制生成第一Redis集群中实例的从节点,并同步所述第一Redis集群内的原始数据,复制得到同步数据,完成所述第一Redis集群内部主从节点的同步;
RedisX复制组件利用管理协议生成所述第一Redis集群的备用节点,并通过所述第一Redis集群的备用节点向第二Redis集群发送同步请求;
RedisX复制组件获取所述第二Redis集群根据所述同步请求响应的返回数据指令,并判断所述返回数据指令为同步全量数据指令或同步增量数据指令;
当所述返回数据指令为同步全量数据指令时,RedisX复制组件利用多线程和批处理的操作方法向所述第二Redis集群传输所述同步数据对应的全量数据,完成所述第一Redis集群与所述第二Redis集群之间的同步;
当所述返回数据指令为同步增量数据指令时,RedisX复制组件通过多线程和批提交的操作方法向所述第二Redis集群传输所述同步数据中的更新数据,完成所述第一Redis集群与所述第二Redis集群之间的同步。
2.根据权利要求1所述的Redis集群之间数据的同步方法,其特征在于,所述RedisX复制组件基于主从协议复制生成第一Redis集群中实例的从节点,并同步所述第一Redis集群内的原始数据,复制得到同步数据,完成所述第一Redis集群内部主从节点的同步包括:
RedisX复制组件利用协调组件按照主从协议的要求注册第一Redis集群中实例的从节点;
RedisX复制组件通过所述协调组件获取所述第一Redis集群中实例的原始数据,并将所述第一Redis集群中实例的原始数据存储至对应的从节点中,得到所述从节点的同步数据,完成所述第一Redis集群内部主从节点的同步。
3.根据权利要求2所述的Redis集群之间数据的同步方法,其特征在于,所述RedisX复制组件利用管理协议生成所述第一Redis集群的备用节点,并通过所述第一Redis集群的备用节点向第二Redis集群发送同步请求包括:
RedisX复制组件利用管理协议生成所述第一Redis集群的备用节点;
RedisX复制组件读取存储在协调组件中的数据偏移量,并通过所述数据偏移量生成同步请求;
RedisX复制组件基于所述第一Redis集群的备用节点向第二Redis集群发送所述同步请求。
4.根据权利要求1所述的Redis集群之间数据的同步方法,其特征在于,所述当所述返回数据指令为同步全量数据指令时,RedisX复制组件利用多线程和批处理的操作方法向所述第二Redis集群传输所述同步数据对应的全量数据,完成所述第一Redis集群与所述第二Redis集群之间的同步包括:
当所述返回数据指令为同步全量数据指令时,RedisX复制组件将所述RedisX复制组件的从节点转化为读写节点;
RedisX复制组件基于所述读写节点并按照多线程和批处理的操作方法,剔除RedisX复制组件中从节点中的同步数据,并获取接收到返回数据指令时第一Redis集群中的数据,得到全量数据;
RedisX复制组件利用文件同步备份工具向所述第二Redis集群传输所述全量数据。
5.根据权利要求2所述的Redis集群之间数据的同步方法,其特征在于,所述当所述返回数据指令为同步增量数据指令时,RedisX复制组件通过多线程和批提交的操作方法向所述第二Redis集群传输所述同步数据中的更新数据,完成所述第一Redis集群与所述第二Redis集群之间的同步包括:
当所述返回数据指令为同步增量数据指令时,RedisX复制组件通过协调组件中的更新日志确定更新时刻,并将所述更新时刻以后的数据确定为更新数据;
RedisX复制组件通过多线程和批提交的操作方法向所述第二Redis集群传输所述同步数据中的更新数据,完成所述第一Redis集群与所述第二Redis集群之间的同步。
6.根据权利要求5所述的Redis集群之间数据的同步方法,其特征在于,所述RedisX复制组件通过多线程和批提交的操作方法向所述第二Redis集群传输所述同步数据中的更新数据,完成所述第一Redis集群与所述第二Redis集群之间的同步包括:
RedisX复制组件按照多线程的处理方法获取所述第一Redis集群的slot分布,并计算所述更新数据的键值对哈希值;
RedisX复制组件将所述更新数据的键值对哈希值映射在所述第一Redis集群的slot分布中,得到映射数据;
RedisX复制组件利用预置传输协议,并按照预置满足条件向所述第二Redis集群传输所述映射数据,完成所述第一Redis集群与所述第二Redis集群之间的同步。
7.根据权利要求1-6中任一项所述的Redis集群之间数据的同步方法,其特征在于,在所述RedisX复制组件基于主从协议复制生成第一Redis集群中实例的从节点,并同步所述第一Redis集群内的原始数据,复制得到同步数据,完成所述第一Redis集群内部主从节点的同步之后,所述Redis集群之间数据的同步方法还包括:
RedisX复制组件通过管理组件对RedisX集群进行监控。
8.一种Redis集群之间数据的同步装置,其特征在于,所述Redis集群之间数据的同步装置包括:
复制模块,RedisX复制组件用于基于主从协议复制生成第一Redis集群中实例的从节点,并同步所述第一Redis集群内的原始数据,复制得到同步数据,完成所述第一Redis集群内部主从节点的同步;
发送模块,RedisX复制组件用于利用管理协议生成所述第一Redis集群的备用节点,并通过所述第一Redis集群的备用节点向第二Redis集群发送同步请求;
判断模块,RedisX复制组件用于获取所述第二Redis集群根据所述同步请求响应的返回数据指令,并判断所述返回数据指令为同步全量数据指令或同步增量数据指令;
第一同步模块,当所述返回数据指令为同步全量数据指令时,RedisX复制组件用于利用多线程和批处理的操作方法向所述第二Redis集群传输所述同步数据对应的全量数据,完成所述第一Redis集群与所述第二Redis集群之间的同步;
第二同步模块,当所述返回数据指令为同步增量数据指令时,RedisX复制组件用于通过多线程和批提交的操作方法向所述第二Redis集群传输所述同步数据中的更新数据,完成所述第一Redis集群与所述第二Redis集群之间的同步。
9.一种Redis集群之间数据的同步设备,其特征在于,所述Redis集群之间数据的同步设备包括:存储器和至少一个处理器,所述存储器中存储有指令;
所述至少一个处理器调用所述存储器中的所述指令,以使得所述Redis集群之间数据的同步设备执行如权利要求1-7中任意一项所述的Redis集群之间数据的同步方法。
10.一种计算机可读存储介质,所述计算机可读存储介质上存储有指令,其特征在于,所述指令被处理器执行时实现如权利要求1-7中任一项所述Redis集群之间数据的同步方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110482351.0A CN113190620B (zh) | 2021-04-30 | 2021-04-30 | Redis集群之间数据的同步方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110482351.0A CN113190620B (zh) | 2021-04-30 | 2021-04-30 | Redis集群之间数据的同步方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113190620A true CN113190620A (zh) | 2021-07-30 |
CN113190620B CN113190620B (zh) | 2023-10-20 |
Family
ID=76983291
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110482351.0A Active CN113190620B (zh) | 2021-04-30 | 2021-04-30 | Redis集群之间数据的同步方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113190620B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114172917A (zh) * | 2021-12-01 | 2022-03-11 | 东方财富信息股份有限公司 | 一种分布式缓存系统及其部署的方法 |
CN114363361A (zh) * | 2022-03-17 | 2022-04-15 | 武汉中科通达高新技术股份有限公司 | 数据同步方法、装置、电子设备及存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110320403A1 (en) * | 2010-06-28 | 2011-12-29 | O'krafka Brian W | Approaches for the replication of write sets |
CN105227657A (zh) * | 2015-09-29 | 2016-01-06 | 北京京东尚科信息技术有限公司 | 一种数据同步的方法和装置 |
CN106341454A (zh) * | 2016-08-23 | 2017-01-18 | 世纪龙信息网络有限责任公司 | 跨机房多活分布式数据库管理系统和方法 |
CN106657169A (zh) * | 2015-10-28 | 2017-05-10 | 北京京东尚科信息技术有限公司 | 一种Redis中主从节点数据同步方法 |
CN110941512A (zh) * | 2019-11-22 | 2020-03-31 | 广东小天才科技有限公司 | redis增量复制方法及装置、终端设备和存储介质 |
CN111324596A (zh) * | 2020-03-06 | 2020-06-23 | 腾讯科技(深圳)有限公司 | 数据库集群的数据迁移方法、装置及电子设备 |
CN112163038A (zh) * | 2020-09-18 | 2021-01-01 | 中国建设银行股份有限公司 | 跨集群数据同步方法、装置、设备及存储介质 |
-
2021
- 2021-04-30 CN CN202110482351.0A patent/CN113190620B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110320403A1 (en) * | 2010-06-28 | 2011-12-29 | O'krafka Brian W | Approaches for the replication of write sets |
CN105227657A (zh) * | 2015-09-29 | 2016-01-06 | 北京京东尚科信息技术有限公司 | 一种数据同步的方法和装置 |
CN106657169A (zh) * | 2015-10-28 | 2017-05-10 | 北京京东尚科信息技术有限公司 | 一种Redis中主从节点数据同步方法 |
CN106341454A (zh) * | 2016-08-23 | 2017-01-18 | 世纪龙信息网络有限责任公司 | 跨机房多活分布式数据库管理系统和方法 |
CN110941512A (zh) * | 2019-11-22 | 2020-03-31 | 广东小天才科技有限公司 | redis增量复制方法及装置、终端设备和存储介质 |
CN111324596A (zh) * | 2020-03-06 | 2020-06-23 | 腾讯科技(深圳)有限公司 | 数据库集群的数据迁移方法、装置及电子设备 |
CN112163038A (zh) * | 2020-09-18 | 2021-01-01 | 中国建设银行股份有限公司 | 跨集群数据同步方法、装置、设备及存储介质 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114172917A (zh) * | 2021-12-01 | 2022-03-11 | 东方财富信息股份有限公司 | 一种分布式缓存系统及其部署的方法 |
CN114172917B (zh) * | 2021-12-01 | 2023-06-09 | 东方财富信息股份有限公司 | 一种分布式缓存系统及其部署的方法 |
CN114363361A (zh) * | 2022-03-17 | 2022-04-15 | 武汉中科通达高新技术股份有限公司 | 数据同步方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113190620B (zh) | 2023-10-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10795911B2 (en) | Apparatus and method for replicating changed-data in source database management system to target database management system in real time | |
CN106331098B (zh) | 一种服务器集群系统 | |
EP3127018B1 (en) | Geographically-distributed file system using coordinated namespace replication | |
US9367261B2 (en) | Computer system, data management method and data management program | |
JP2019526106A (ja) | データ処理方法及びデバイス | |
US20170168756A1 (en) | Storage transactions | |
CN113190620B (zh) | Redis集群之间数据的同步方法、装置、设备及存储介质 | |
US11640261B2 (en) | Log processing method to avoid log collision, and related device and system | |
CN112654978A (zh) | 分布式异构存储系统中数据一致性实时检查的方法、设备和系统 | |
CN112506702A (zh) | 数据中心容灾方法、装置、设备及存储介质 | |
CN106855869B (zh) | 一种实现数据库高可用的方法、装置和系统 | |
CN105323271B (zh) | 一种云计算系统以及云计算系统的处理方法和装置 | |
CN116389233B (zh) | 容器云管理平台主备切换系统、方法、装置和计算机设备 | |
JP2013206072A (ja) | データ整合システム、データ整合方法およびデータ整合プログラム | |
CN108415951B (zh) | 一种数据库控制方法和系统 | |
CN115328931A (zh) | 数据库集群数据校验方法、装置、存储介质及电子设备 | |
CN112202601B (zh) | 副本集模式运行的两物理节点mongo集群的应用方法 | |
JPH07114495A (ja) | 多重化ファイル管理方式 | |
CN113138879A (zh) | 用于混合边缘复制的方法和系统 | |
KR20160025994A (ko) | 분산 저장 환경에서 게이트웨이를 선택하기 위한 클러스터 관리 방법 및 데이터 저장 시스템 | |
CN117555493B (zh) | 数据处理方法、系统、装置、存储介质及电子设备 | |
US20240111747A1 (en) | Optimizing the operation of a microservice cluster | |
Chaurasiya et al. | Linux highly available (HA) fault-tolerant servers | |
CN117955991A (zh) | 一种服务处理方法、装置、设备及存储介质 | |
CN117097742A (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 |