CN109376197A - 一种数据同步方法、服务器及计算机存储介质 - Google Patents

一种数据同步方法、服务器及计算机存储介质 Download PDF

Info

Publication number
CN109376197A
CN109376197A CN201811140402.6A CN201811140402A CN109376197A CN 109376197 A CN109376197 A CN 109376197A CN 201811140402 A CN201811140402 A CN 201811140402A CN 109376197 A CN109376197 A CN 109376197A
Authority
CN
China
Prior art keywords
data
new data
disk
write
node
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
Application number
CN201811140402.6A
Other languages
English (en)
Other versions
CN109376197B (zh
Inventor
贺鹏飞
杨明
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ireader Technology Co Ltd
Zhangyue Technology Co Ltd
Original Assignee
Zhangyue Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Zhangyue Technology Co Ltd filed Critical Zhangyue Technology Co Ltd
Priority to CN201811140402.6A priority Critical patent/CN109376197B/zh
Publication of CN109376197A publication Critical patent/CN109376197A/zh
Application granted granted Critical
Publication of CN109376197B publication Critical patent/CN109376197B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明实施例公开了一种数据同步方法、服务器及计算机存储介质,用于不同机房中的数据同步的情况。其中方法包括:响应于写数据请求,将更新数据写入redis节点对应的内存和磁盘;从磁盘中读取更新数据,并将更新数据同步至其他机房。本发明实施例解决了不同机房中数据同步缺乏有效实现方案的问题,实现了不同机房中底层数据的实时同步,即使某一机房无法工作时,针对用户的数据访问服务也不会发生中断。

Description

一种数据同步方法、服务器及计算机存储介质
技术领域
本发明涉及计算机技术领域,具体涉及一种数据同步方法、服务器及计算机存储介质。
背景技术
目前,随着手机等移动终端的普及以及电子书阅读器的发展,电子书越来越受阅读用户的青睐。作为一种现代化的阅读趋势,电子阅读的优势十分明显:低碳、便捷、成本低且存储量大。
对于电子阅读企业而言,随着用户数量呈指数级的增长,每日需要处理的用户数据也迅速增大,给服务器造成了不小的压力。于是,电子阅读企业通常会在同一个城市搭建多个机房,以建立多个服务器集群来满足大量的用户访问需求。然而,如果一处机房的服务器因故无法工作,同样会给原本访问该机房服务器的用户带来影响,从而给企业带来难以估量的损失。而如果能在不同机房之间实现数据同步,那么当某一个机房无法工作时,另一个机房由于已经同步了该机房的数据,则可以顶替该机房服务器让用户正常访问。
因此,如何在不同机房之间实现数据同步则成为亟待解决的问题。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的数据同步方法、服务器及计算机存储介质。
根据本发明的一个方面,提供了一种数据同步方法,应用于机房内的redis节点,所述方法包括:响应于写数据请求,将更新数据写入redis节点对应的内存和磁盘;从所述磁盘中读取所述更新数据,并将所述更新数据同步至其他机房。
根据本发明的另一方面,提供了一种服务器,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行以下操作:响应于写数据请求,将更新数据写入redis节点对应的内存和磁盘;从所述磁盘中读取所述更新数据,并将所述更新数据同步至其他机房。
根据本发明的又一方面,提供了一种计算机存储介质,存储介质中存储有至少一可执行指令,可执行指令使处理器执行以下操作:响应于写数据请求,将更新数据写入redis节点对应的内存和磁盘;从所述磁盘中读取所述更新数据,并将所述更新数据同步至其他机房。
根据本发明的数据同步方法、服务器及计算机存储介质,考虑不同机房之间进行数据同步的场景,首先响应于写数据请求,将更新数据写入redis节点对应的内存和磁盘,然后从磁盘中读取更新数据,并将更新数据同步至其他机房,解决了不同机房中数据同步缺乏有效实现方案的问题,实现了基于磁盘数据的不同机房中底层数据的实时同步,即使某一机房无法工作时,针对用户的数据访问服务也不会发生中断,并且,保证了不同机房中的数据同步实现的稳定性。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了本发明实施例提供的一种数据同步方法的流程图;
图2示出了本发明实施例提供的另一种数据同步方法的流程图;
图3示出了本发明实施例提供的一种服务器的结构示意图。
具体实施方式
下面将参照附图更详细地描述本发明的示例性实施例。虽然附图中显示了本发明的示例性实施例,然而应当理解,可以以各种形式实现本发明而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本发明,并且能够将本发明的范围完整的传达给本领域的技术人员。
图1示出了本发明实施例提供的一种数据同步方法的流程图,用于不同机房中的数据进行同步的情况,该方法可以由服务器执行。如图1所示,该方法包括以下步骤:
步骤S101,响应于写数据请求,将更新数据写入redis节点对应的内存和磁盘。
机房内的服务器通常采用集群的形式进行部署,例如redis集群,一个redis集群通常由多个节点(node)组成,包括主节点(master)和从节点(slave)。一个节点就是一个运行在集群模式下的redis服务器。当任意一个redis节点检测到用户数据发生更新时,触发写数据请求,同时响应于该写数据请求,通过代理服务器(proxy server),以并行处理方式将更新数据写入redis节点对应的内存和磁盘中。可选的,响应于写数据请求,将更新数据写入redis节点对应的内存和磁盘,包括:响应于写数据请求,将更新数据分别写入redis节点所属的主节点和从节点各自对应的内存和磁盘,即机房中的主从节点同时进行更新数据的写入,以保证当前机房中各节点数据的一致性。
其中,关于更新数据的写入,在底层实现方面,通过更改开源的redis程序代码,扩展底层命令,使得redis节点响应于写数据请求时,在将接收的更新数据写入内存中的同时,将更新数据写入磁盘中。磁盘的容量大,可以作为redis节点内存的扩充,实现对大量数据的备份存储。
步骤S102,从磁盘中读取更新数据,并将更新数据同步至其他机房。
更新数据被写入当前机房中的redis节点对应的磁盘后,可以从任意一个redis节点的磁盘中读取更新数据,实时同步至其他机房对应的redis节点中。不同机房中的服务器采用同样的集群部署方式,因而,不同机房中的redis节点存在对应关系,该对应关系是指redis节点在不同机房的集群模式下发挥相同的作用。并且,不同机房中redis节点的数量可以不同,因此不同机房中redis节点之间的对应关系可以一对多或者多对一,而并不限于节点一一对应的关系,但是,基于一致性哈希算法,具有相同键(key)值的更新数据总是在不同机房中属于一一对应关系的redis节点之间同步。例如,从A机房的redis节点X1的磁盘中读取更新数据,基于哈希算法,可以实时地将该更新数据同步至B机房中与redis节点X1对应的至少一个redis节点中。假设B机房中与A机房的redis节点X1对应的节点有两个:redis节点X2和redis节点X3,则根据一致性哈希算法,在数据同步过程中,从redis节点X1读取的更新数据中具有相同键值key1的更新数据m将被唯一地同步至redis节点X2,而读取的更新数据中具有相同键值key2的更新数据n将被唯一地同步至redis节点X3,由此使得对从A机房同步的相同key的数据会分配在B机房对应的唯一节点,从而保证不同机房数据同步的一致性和有序性。当A机房发生故障,例如redis节点宕机或者通信链路中断时,针对用户的数据访问服务,仍然可以调用B机房中的同步数据,返回给用户。
相比于直接从内存中读取更新数据,实现不同机房之间的数据同步,从磁盘中读取更新数据进行同步,不仅可以缓解当前机房中redis节点内存的数据处理压力,还可以避免当前机房中redis节点内存出现故障,例如通信链路中断,使得内存中数据积压,引起内存崩掉等不可预知的故障,而导致数据同步无法实现的现象,进而保证了不同机房中数据同步实现的稳定性。
本实施例技术方案首先响应于写数据请求,将更新数据写入redis节点对应的内存和磁盘,然后从磁盘中读取更新数据,并将更新数据同步至其他机房,解决了不同机房中数据同步缺乏有效实现方案的问题,实现了基于磁盘数据的不同机房中底层数据的实时同步,即使某一机房无法工作时,针对用户的数据访问服务也不会发生中断,并且,保证了不同机房中的数据同步实现的稳定性。
图2示出了本发明实施例提供的另一种数据同步方法的流程图,作为上述实施例技术方案的细化与扩展。如图2所示,该方法包括以下步骤:
步骤S201,响应于写数据请求,将更新数据写入redis节点对应的内存和磁盘。
步骤S202,利用机房的消息系统实时从磁盘读出更新数据,并将更新数据同步至其他机房的消息系统,以便通过其他机房的消息系统实时将更新数据写入其他机房的redis节点对应的内存。
消息系统同样对应于每个机房中的至少一个服务器,作为数据同步的媒介,通过远距离传输,实现不同机房中数据的同步。具体的,同一机房中的每个redis节点均部署有消息系统的生产者(producer),而消息系统的消费者(consumer)则可以适应性进行部署,例如,可以是每个redis节点部署一个消费者,也可以是多个redis节点共用一个消费者,本实施不做具体限定,其中,消费者从消息系统中读取消息,生产者向消息系统发送消息。生产者向消息系统发送消息之前,对消息进行分类,即消息系统中的每一个消息对应一个主题(topic),消费者可以只关注自己需要的主题中的消息。
示例性的,A机房的消息系统通过其生产者从机房内redis节点X1对应的磁盘中读取属于主题1的更新数据m,发送至B机房的消息系统;B机房的消息系统接收到该更新数据m后,通过其消费者将更新数据m写入B机房的redis节点X2对应的内存中。其中,消息系统的生成者对redis节点而言,属于redis节点的消费者,A机房的消息系统的消费者对B机房的消息系统而言,属于其生产者,即根据消息的传输,消息的生产者与消费者角色存在灵活的变换关系。
可选的,机房的消息系统包括kafka(卡夫卡)消息系统。kafka消息系统是一种高吞吐量的分布式发布订阅消息系统,本实施例对其具体部署方式以及消息的发布订阅不做具体限定,本领域技术人员可以根据机房情况进行部署。
在上述技术方案的基础上,可选的,该方法还包括:
利用机房的消息系统实时接收来自其他机房的同步更新数据,并将接收的同步更新数据实时写入redis节点对应的内存。
当前机房不仅将其redis节点中写入的更新数据同步至其他机房,而且接收其他机房中redis节点发送的更新数据。即任何一个机房中的redis节点既是同步数据的发送者,也是同步数据的接收者,并基于一致性哈希算法,实现不同键值的更新数据在不同机房中始终会按照键值分配给对应的redis节点,保证了不同机房中数据的一致性。
其中,需要说明的是,对于同步数据的接收方而言,同步数据只写入接收方redis节点的内存中,而不写入磁盘中,可以避免不同机房中redis节点之间更新数据的往返重复同步。例如,A机房中的redis节点X1将更新数据m同时写入其内存和磁盘中,然后利用A机房的消息系统将磁盘中的更新数据m同步至B机房中redis节点X2,redis节点X2利用B机房的消息系统将接收的同步更新数据m写入其内存中,这样,当redis节点X2基于磁盘数据向redis节点X1同步时,便不会出现重复将更新数据m再次同步至redis节点X1的现象。
进一步的,写入redis节点对应的内存和磁盘的更新数据的数据结构中至少包括数据本体、当前时间戳和所属主机标识;
其中,当前时间戳用于利用消息系统校验从磁盘读出的更新数据在时序上的一致性或重复性;主机标识用于区分写入内存的更新数据所属的主机。
不同时间段写入的更新数据对应不同的时间戳,即更新数据按照一定的时序性写入redis节点对应的内存和磁盘中。时间戳不仅可以避免数据同步过程中不同时间内的数据时序发生混乱,还可以避免同一时间内的数据重复同步或重复存储。
示例一,阅读用户在其阅读账号下通过充值,使其账号金额从0增加为100阅饼,充值行为对应的100阅饼将会以键值对的形式写入当前机房的redis节点中,例如账户-100阅饼,同时记录该充值数据的时间戳。当充值数据被同步至其他机房的redis节点时,当前机房的消息系统会对该充值数据的时间戳进行校验,然后再发送至其他机房,以保证其他机房中同步的用户账号下的金额数据同样是充值后的100阅饼。
示例二,数据同步过程中,当前机房的消息系统通过对时间戳校验,发现同步数据属于重复数据,则对其进行丢弃,不再重复同步。
此外,更新数据的数据结构中的主机标识可以标记数据来源。尤其是机房中redis节点对应的内存中不仅存储redis节点响应于数据写请求而写入的更新数据,还存储从其他机房的redis节点中同步的更新数据,利用主机标识便可以用于区分更新数据的来源。
本实施例技术方案首先响应于写数据请求,将更新数据写入redis节点对应的内存和磁盘;然后利用机房的消息系统实时从磁盘读出更新数据,并同步至其他机房的消息系统;其他机房的消息系统接收到同步更新数据时,实时写入机房的redis节点对应的内存,即本实施例基于redis集群和消息系统部署,实现了不同机房中底层数据的实时同步,即使某一机房发生故障时,用户的数据请求服务也不会发生中断,并且,数据同步过程中通过对更新数据时间戳的校验,保证了同步数据的时序一致性,避免了更新数据的重复写入。
图3示出了本发明实施例提供的一种服务器的结构示意图,本发明具体实施例并不对服务器的具体实现做限定。
如图3所示,该服务器可以包括:处理器(processor)302、通信接口(Communications Interface)304、存储器(memory)306、以及通信总线308。
其中:
处理器302、通信接口304、以及存储器306通过通信总线308完成相互间的通信。
通信接口304,用于与其它设备比如客户端或其它服务器等的网元通信。
处理器302,用于执行程序310,具体可以执行上述数据同步方法实施例中的相关步骤。
具体地,程序310可以包括程序代码,该程序代码包括计算机操作指令。
处理器302可能是中央处理器CPU,或者是特定集成电路ASIC(ApplicationSpecific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。服务器包括的一个或多个处理器,可以是同一类型的处理器,如一个或多个CPU;也可以是不同类型的处理器,如一个或多个CPU以及一个或多个ASIC。
存储器306,用于存放程序310。存储器306可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
程序310具体可以用于使得处理器302执行以下操作:
响应于写数据请求,将更新数据写入redis节点对应的内存和磁盘;
从所述磁盘中读取所述更新数据,并将所述更新数据同步至其他机房。
在一种可选的方式中,程序310具体可以进一步用于使得处理器302执行以下操作:
响应于写数据请求,将更新数据分别写入redis节点所属的主节点和从节点各自对应的内存和磁盘。
在一种可选的方式中,程序310具体可以进一步用于使得处理器302执行以下操作:
利用所述机房的消息系统实时从所述磁盘读出所述更新数据,并将所述更新数据同步至其他机房的消息系统,以便通过所述其他机房的消息系统实时将所述更新数据写入所述其他机房的redis节点对应的内存。
在一种可选的方式中,程序310具体还可以用于使得处理器302执行以下操作:
利用所述机房的消息系统实时接收来自其他机房的同步更新数据,并将所述同步更新数据实时写入所述redis节点对应的内存。
在一种可选的方式中,所述写入redis节点对应的内存和磁盘的更新数据的数据结构中至少包括数据本体、当前时间戳和所属主机标识;
其中,所述当前时间戳用于利用所述消息系统校验从所述磁盘读出的更新数据在时序上的一致性或重复性;
所述主机标识用于区分写入内存的更新数据所属的主机。
在一种可选的方式中,所述消息系统包括kafka消息系统。
本发明实施例还提供了一种非易失性计算机存储介质,所述计算机存储介质存储有至少一可执行指令,该计算机可执行指令可执行上述任意方法实施例中的数据同步方法。
可执行指令具体可以用于使得处理器执行以下操作:
响应于写数据请求,将更新数据写入redis节点对应的内存和磁盘;
从所述磁盘中读取所述更新数据,并将所述更新数据同步至其他机房。
在一种可选的方式中,所述可执行指令进一步使所述处理器执行以下操作:
响应于写数据请求,将更新数据分别写入redis节点所属的主节点和从节点各自对应的内存和磁盘。
在一种可选的方式中,所述可执行指令进一步使所述处理器执行以下操作:
利用所述机房的消息系统实时从所述磁盘读出所述更新数据,并将所述更新数据同步至其他机房的消息系统,以便通过所述其他机房的消息系统实时将所述更新数据写入所述其他机房的redis节点对应的内存。
在一种可选的方式中,所述可执行指令还使所述处理器执行以下操作:
利用所述机房的消息系统实时接收来自其他机房的同步更新数据,并将所述同步更新数据实时写入所述redis节点对应的内存。
在一种可选的方式中,所述写入redis节点对应的内存和磁盘的更新数据的数据结构中至少包括数据本体、当前时间戳和所属主机标识;
其中,所述当前时间戳用于利用所述消息系统校验从所述磁盘读出的更新数据在时序上的一致性或重复性;
所述主机标识用于区分写入内存的更新数据所属的主机。
在一种可选的方式中,所述消息系统包括kafka消息系统。
进一步的,本发明还公开了以下内容:
a1、一种数据同步方法,应用于机房内的redis节点,所述方法包括:
响应于写数据请求,将更新数据写入redis节点对应的内存和磁盘;
从所述磁盘中读取所述更新数据,并将所述更新数据同步至其他机房。
a2、根据a1所述的方法,其中,所述响应于写数据请求,将更新数据写入redis节点对应的内存和磁盘,包括:
响应于写数据请求,将更新数据分别写入redis节点所属的主节点和从节点各自对应的内存和磁盘。
a3、根据a1所述的方法,其中,所述从所述磁盘中读取所述更新数据,并将所述更新数据同步至其他机房,包括:
利用所述机房的消息系统实时从所述磁盘读出所述更新数据,并将所述更新数据同步至其他机房的消息系统,以便通过所述其他机房的消息系统实时将所述更新数据写入所述其他机房的redis节点对应的内存。
a4、根据a1所述的方法,其中,所述方法还包括:
利用所述机房的消息系统实时接收来自其他机房的同步更新数据,并将所述同步更新数据实时写入所述redis节点对应的内存。
a5、根据a3或a4所述的方法,其中,所述写入redis节点对应的内存和磁盘的更新数据的数据结构中至少包括数据本体、当前时间戳和所属主机标识;
其中,所述当前时间戳用于利用所述消息系统校验从所述磁盘读出的更新数据在时序上的一致性或重复性;
所述主机标识用于区分写入内存的更新数据所属的主机。
a6、根据a5所述的方法,其中,所述消息系统包括kafka消息系统。
b7、一种服务器,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;
所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行以下操作:
响应于写数据请求,将更新数据写入redis节点对应的内存和磁盘;
从所述磁盘中读取所述更新数据,并将所述更新数据同步至其他机房。
b8、根据b7所述的服务器,所述可执行指令进一步使所述处理器执行以下操作:
响应于写数据请求,将更新数据分别写入redis节点所属的主节点和从节点各自对应的内存和磁盘。
b9、根据b7所述的服务器,所述可执行指令进一步使所述处理器执行以下操作:
利用所述机房的消息系统实时从所述磁盘读出所述更新数据,并将所述更新数据同步至其他机房的消息系统,以便通过所述其他机房的消息系统实时将所述更新数据写入所述其他机房的redis节点对应的内存。
b10、根据b7所述的服务器,所述可执行指令还使所述处理器执行以下操作:
利用所述机房的消息系统实时接收来自其他机房的同步更新数据,并将所述同步更新数据实时写入所述redis节点对应的内存。
b11、根据b9或b10所述的服务器,其中,所述写入redis节点对应的内存和磁盘的更新数据的数据结构中至少包括数据本体、当前时间戳和所属主机标识;
其中,所述当前时间戳用于利用所述消息系统校验从所述磁盘读出的更新数据在时序上的一致性或重复性;
所述主机标识用于区分写入内存的更新数据所属的主机。
b12、根据b11所述的服务器,其中,所述消息系统包括kafka消息系统。
c13、一种计算机存储介质,所述存储介质中存储有至少一可执行指令,所述可执行指令使处理器执行以下操作:
响应于写数据请求,将更新数据写入redis节点对应的内存和磁盘;
从所述磁盘中读取所述更新数据,并将所述更新数据同步至其他机房。
c14、根据c13所述的计算机存储介质,所述可执行指令进一步使所述处理器执行以下操作:
响应于写数据请求,将更新数据分别写入redis节点所属的主节点和从节点各自对应的内存和磁盘。
c15、根据c13所述的计算机存储介质,所述可执行指令进一步使所述处理器执行以下操作:
利用所述机房的消息系统实时从所述磁盘读出所述更新数据,并将所述更新数据同步至其他机房的消息系统,以便通过所述其他机房的消息系统实时将所述更新数据写入所述其他机房的redis节点对应的内存。
c16、根据c13所述的计算机存储介质,所述可执行指令还使所述处理器执行以下操作:
利用所述机房的消息系统实时接收来自其他机房的同步更新数据,并将所述同步更新数据实时写入所述redis节点对应的内存。
c17、根据c15或c16所述的计算机存储介质,其中,所述写入redis节点对应的内存和磁盘的更新数据的数据结构中至少包括数据本体、当前时间戳和所属主机标识;
其中,所述当前时间戳用于利用所述消息系统校验从所述磁盘读出的更新数据在时序上的一致性或重复性;
所述主机标识用于区分写入内存的更新数据所属的主机。
c18、根据c16所述的计算机存储介质,其中,所述消息系统包括kafka消息系统。
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本发明并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。

Claims (10)

1.一种数据同步方法,应用于机房内的redis节点,所述方法包括:
响应于写数据请求,将更新数据写入redis节点对应的内存和磁盘;
从所述磁盘中读取所述更新数据,并将所述更新数据同步至其他机房。
2.根据权利要求1所述的方法,其中,所述响应于写数据请求,将更新数据写入redis节点对应的内存和磁盘,包括:
响应于写数据请求,将更新数据分别写入redis节点所属的主节点和从节点各自对应的内存和磁盘。
3.根据权利要求1所述的方法,其中,所述从所述磁盘中读取所述更新数据,并将所述更新数据同步至其他机房,包括:
利用所述机房的消息系统实时从所述磁盘读出所述更新数据,并将所述更新数据同步至其他机房的消息系统,以便通过所述其他机房的消息系统实时将所述更新数据写入所述其他机房的redis节点对应的内存。
4.根据权利要求1所述的方法,其中,所述方法还包括:
利用所述机房的消息系统实时接收来自其他机房的同步更新数据,并将所述同步更新数据实时写入所述redis节点对应的内存。
5.根据权利要求3或4所述的方法,其中,所述写入redis节点对应的内存和磁盘的更新数据的数据结构中至少包括数据本体、当前时间戳和所属主机标识;
其中,所述当前时间戳用于利用所述消息系统校验从所述磁盘读出的更新数据在时序上的一致性或重复性;
所述主机标识用于区分写入内存的更新数据所属的主机。
6.根据权利要求5所述的方法,其中,所述消息系统包括kafka消息系统。
7.一种服务器,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;
所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行以下操作:
响应于写数据请求,将更新数据写入redis节点对应的内存和磁盘;
从所述磁盘中读取所述更新数据,并将所述更新数据同步至其他机房。
8.根据权利要求7所述的服务器,所述可执行指令进一步使所述处理器执行以下操作:
响应于写数据请求,将更新数据分别写入redis节点所属的主节点和从节点各自对应的内存和磁盘。
9.根据权利要求7所述的服务器,所述可执行指令进一步使所述处理器执行以下操作:
利用所述机房的消息系统实时从所述磁盘读出所述更新数据,并将所述更新数据同步至其他机房的消息系统,以便通过所述其他机房的消息系统实时将所述更新数据写入所述其他机房的redis节点对应的内存。
10.一种计算机存储介质,所述存储介质中存储有至少一可执行指令,所述可执行指令使处理器执行以下操作:
响应于写数据请求,将更新数据写入redis节点对应的内存和磁盘;
从所述磁盘中读取所述更新数据,并将所述更新数据同步至其他机房。
CN201811140402.6A 2018-09-28 2018-09-28 一种数据同步方法、服务器及计算机存储介质 Active CN109376197B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811140402.6A CN109376197B (zh) 2018-09-28 2018-09-28 一种数据同步方法、服务器及计算机存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811140402.6A CN109376197B (zh) 2018-09-28 2018-09-28 一种数据同步方法、服务器及计算机存储介质

Publications (2)

Publication Number Publication Date
CN109376197A true CN109376197A (zh) 2019-02-22
CN109376197B CN109376197B (zh) 2020-01-17

Family

ID=65402877

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811140402.6A Active CN109376197B (zh) 2018-09-28 2018-09-28 一种数据同步方法、服务器及计算机存储介质

Country Status (1)

Country Link
CN (1) CN109376197B (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109936481A (zh) * 2019-03-22 2019-06-25 北京达佳互联信息技术有限公司 主从服务器切换方法、装置、电子设备及存储介质
CN110597910A (zh) * 2019-09-12 2019-12-20 聚好看科技股份有限公司 一种异地数据同步方法、装置和系统
CN110647511A (zh) * 2019-09-27 2020-01-03 掌阅科技股份有限公司 数据同步方法、计算设备及计算机存储介质
CN110659256A (zh) * 2019-09-30 2020-01-07 掌阅科技股份有限公司 多机房同步方法、计算设备及计算机存储介质
CN110674156A (zh) * 2019-09-27 2020-01-10 掌阅科技股份有限公司 多机房数据的同步方法、计算设备及计算机存储介质
CN111541664A (zh) * 2020-04-14 2020-08-14 北京数盾信息科技有限公司 统一密码服务管理平台
CN112256700A (zh) * 2020-10-19 2021-01-22 北京字节跳动网络技术有限公司 数据存储方法、装置、电子设备及计算机可读存储介质
CN112925848A (zh) * 2021-02-23 2021-06-08 马上消费金融股份有限公司 一种数据同步方法、装置、设备及可读存储介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7489782B1 (en) * 2004-02-27 2009-02-10 Symantec Operating Corporation Registry restore to original hardware
US20120147731A1 (en) * 2010-12-08 2012-06-14 Gangneung-Wonju National University Industry Academy Cooperation Group Apparatus of multiplexing data transmission path for wireless sensor network
CN102955845A (zh) * 2012-10-23 2013-03-06 北京亿赞普网络技术有限公司 数据访问方法、装置与分布式数据库系统
CN104980519A (zh) * 2015-06-29 2015-10-14 北京奇虎科技有限公司 多机房存储系统
CN106055698A (zh) * 2016-06-14 2016-10-26 智者四海(北京)技术有限公司 数据迁移方法、代理节点及数据库实例
CN107168657A (zh) * 2017-06-15 2017-09-15 深圳市云舒网络技术有限公司 一种基于分布式块存储的虚拟磁盘分层缓存设计方法
CN108228397A (zh) * 2016-12-22 2018-06-29 深圳市优朋普乐传媒发展有限公司 一种集群间跨机房同步的方法和装置

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7489782B1 (en) * 2004-02-27 2009-02-10 Symantec Operating Corporation Registry restore to original hardware
US20120147731A1 (en) * 2010-12-08 2012-06-14 Gangneung-Wonju National University Industry Academy Cooperation Group Apparatus of multiplexing data transmission path for wireless sensor network
CN102955845A (zh) * 2012-10-23 2013-03-06 北京亿赞普网络技术有限公司 数据访问方法、装置与分布式数据库系统
CN104980519A (zh) * 2015-06-29 2015-10-14 北京奇虎科技有限公司 多机房存储系统
CN106055698A (zh) * 2016-06-14 2016-10-26 智者四海(北京)技术有限公司 数据迁移方法、代理节点及数据库实例
CN108228397A (zh) * 2016-12-22 2018-06-29 深圳市优朋普乐传媒发展有限公司 一种集群间跨机房同步的方法和装置
CN107168657A (zh) * 2017-06-15 2017-09-15 深圳市云舒网络技术有限公司 一种基于分布式块存储的虚拟磁盘分层缓存设计方法

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109936481B (zh) * 2019-03-22 2021-06-18 北京达佳互联信息技术有限公司 主从服务器切换方法、装置、电子设备及存储介质
CN109936481A (zh) * 2019-03-22 2019-06-25 北京达佳互联信息技术有限公司 主从服务器切换方法、装置、电子设备及存储介质
US11500744B2 (en) 2019-03-22 2022-11-15 Beijing Dajia Internet Information Technology Co., Ltd. Method for primary-backup server switching, and control server
CN110597910A (zh) * 2019-09-12 2019-12-20 聚好看科技股份有限公司 一种异地数据同步方法、装置和系统
CN110647511A (zh) * 2019-09-27 2020-01-03 掌阅科技股份有限公司 数据同步方法、计算设备及计算机存储介质
CN110674156A (zh) * 2019-09-27 2020-01-10 掌阅科技股份有限公司 多机房数据的同步方法、计算设备及计算机存储介质
CN110674156B (zh) * 2019-09-27 2020-06-26 掌阅科技股份有限公司 多机房数据的同步方法、计算设备及计算机存储介质
CN110659256A (zh) * 2019-09-30 2020-01-07 掌阅科技股份有限公司 多机房同步方法、计算设备及计算机存储介质
CN110659256B (zh) * 2019-09-30 2021-02-26 掌阅科技股份有限公司 多机房同步方法、计算设备及计算机存储介质
CN111541664A (zh) * 2020-04-14 2020-08-14 北京数盾信息科技有限公司 统一密码服务管理平台
CN112256700A (zh) * 2020-10-19 2021-01-22 北京字节跳动网络技术有限公司 数据存储方法、装置、电子设备及计算机可读存储介质
CN112925848A (zh) * 2021-02-23 2021-06-08 马上消费金融股份有限公司 一种数据同步方法、装置、设备及可读存储介质
CN112925848B (zh) * 2021-02-23 2024-02-06 马上消费金融股份有限公司 一种数据同步方法、装置、设备及可读存储介质

Also Published As

Publication number Publication date
CN109376197B (zh) 2020-01-17

Similar Documents

Publication Publication Date Title
CN109376197A (zh) 一种数据同步方法、服务器及计算机存储介质
CN110784350B (zh) 一种实时高可用集群管理系统的设计方法
CN103229171B (zh) 基于快照的复制
EP2972983B1 (en) Dynamically managing memberships in replicated state machines within a distributed computing environment
CN111124277B (zh) 一种深度学习数据集缓存方法、系统、终端及存储介质
CN105701159B (zh) 一种数据同步装置和方法
CN107402722B (zh) 一种数据迁移方法及存储设备
CN109542865A (zh) 分布式集群系统配置文件同步方法、装置、系统及介质
CN112069265A (zh) 配置数据的同步方法、业务数据系统、计算机系统和介质
CN103701913B (zh) 数据同步方法及装置
CN110673941B (zh) 多机房中微服务的迁移方法、电子设备及存储介质
CN106506703A (zh) 基于共享内存的服务发现方法、装置及系统、服务器
CN105740248B (zh) 一种数据同步方法、装置及系统
CN104077199A (zh) 基于共享磁盘的高可用集群的隔离方法和系统
CN103152390A (zh) 分布式存储系统的节点配置方法、装置、节点及系统
JP6405255B2 (ja) 通信システム、キュー管理サーバ、及び、通信方法
CN104461705B (zh) 一种业务访问的方法及存储控制器、集群存储系统
CN113778615A (zh) 一种快速稳定的网络靶场虚拟机构建系统
CN105808374A (zh) 一种快照处理方法及相关设备
JP6338257B2 (ja) ネットワーク要素データアクセス方法および装置、およびネットワーク管理システム
CN114565502A (zh) Gpu资源管理方法、调度方法、装置、电子设备及存储介质
CN103399776A (zh) 可重用mock创建方法及系统
CN108282350A (zh) 网络管理方法和装置
CN110471767A (zh) 一种设备的调度方法
CN116303789A (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