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

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

【技术实现步骤摘要】
一种数据同步方法、服务器及计算机存储介质
本专利技术涉及计算机
,具体涉及一种数据同步方法、服务器及计算机存储介质。
技术介绍
目前,随着手机等移动终端的普及以及电子书阅读器的发展,电子书越来越受阅读用户的青睐。作为一种现代化的阅读趋势,电子阅读的优势十分明显:低碳、便捷、成本低且存储量大。对于电子阅读企业而言,随着用户数量呈指数级的增长,每日需要处理的用户数据也迅速增大,给服务器造成了不小的压力。于是,电子阅读企业通常会在同一个城市搭建多个机房,以建立多个服务器集群来满足大量的用户访问需求。然而,如果一处机房的服务器因故无法工作,同样会给原本访问该机房服务器的用户带来影响,从而给企业带来难以估量的损失。而如果能在不同机房之间实现数据同步,那么当某一个机房无法工作时,另一个机房由于已经同步了该机房的数据,则可以顶替该机房服务器让用户正常访问。因此,如何在不同机房之间实现数据同步则成为亟待解决的问题。
技术实现思路
鉴于上述问题,提出了本专利技术以便提供一种克服上述问题或者至少部分地解决上述问题的数据同步方法、服务器及计算机存储介质。根据本专利技术的一个方面,提供了一种数据同步方法,应用于机房内的redis节点,所述方法包括:响应于写数据请求,将更新数据写入redis节点对应的内存和磁盘;从所述磁盘中读取所述更新数据,并将所述更新数据同步至其他机房。根据本专利技术的另一方面,提供了一种服务器,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行以下操作:响应于写数据请求,将更新数据写入redis节点对应的内存和磁盘;从所述磁盘中读取所述更新数据,并将所述更新数据同步至其他机房。根据本专利技术的又一方面,提供了一种计算机存储介质,存储介质中存储有至少一可执行指令,可执行指令使处理器执行以下操作:响应于写数据请求,将更新数据写入redis节点对应的内存和磁盘;从所述磁盘中读取所述更新数据,并将所述更新数据同步至其他机房。根据本专利技术的数据同步方法、服务器及计算机存储介质,考虑不同机房之间进行数据同步的场景,首先响应于写数据请求,将更新数据写入redis节点对应的内存和磁盘,然后从磁盘中读取更新数据,并将更新数据同步至其他机房,解决了不同机房中数据同步缺乏有效实现方案的问题,实现了基于磁盘数据的不同机房中底层数据的实时同步,即使某一机房无法工作时,针对用户的数据访问服务也不会发生中断,并且,保证了不同机房中的数据同步实现的稳定性。上述说明仅是本专利技术技术方案的概述,为了能够更清楚了解本专利技术的技术手段,而可依照说明书的内容予以实施,并且为了让本专利技术的上述和其它目的、特征和优点能够更明显易懂,以下特举本专利技术的具体实施方式。附图说明通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本专利技术的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:图1示出了本专利技术实施例提供的一种数据同步方法的流程图;图2示出了本专利技术实施例提供的另一种数据同步方法的流程图;图3示出了本专利技术实施例提供的一种服务器的结构示意图。具体实施方式下面将参照附图更详细地描述本专利技术的示例性实施例。虽然附图中显示了本专利技术的示例性实施例,然而应当理解,可以以各种形式实现本专利技术而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本专利技术,并且能够将本专利技术的范围完整的传达给本领域的技术人员。图1示出了本专利技术实施例提供的一种数据同步方法的流程图,用于不同机房中的数据进行同步的情况,该方法可以由服务器执行。如图1所示,该方法包括以下步骤:步骤S101,响应于写数据请求,将更新数据写入redis节点对应的内存和磁盘。机房内的服务器通常采用集群的形式进行部署,例如redis集群,一个redis集群通常由多个节点(node)组成,包括主节点(master)和从节点(slave)。一个节点就是一个运行在集群模式下的redis服务器。当任意一个redis节点检测到用户数据发生更新时,触发写数据请求,同时响应于该写数据请求,通过代理服务器(proxyserver),以并行处理方式将更新数据写入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节点对应的内存和磁盘,然后从磁盘中读取更新数据,并将更新数据同步至其他机房,解决了不同机房中数据同步缺乏有效本文档来自技高网...

【技术保护点】
1.一种数据同步方法,应用于机房内的redis节点,所述方法包括:响应于写数据请求,将更新数据写入redis节点对应的内存和磁盘;从所述磁盘中读取所述更新数据,并将所述更新数据同步至其他机房。

【技术特征摘要】
1.一种数据同步方法,应用于机房内的redis节点,所述方法包括:响应于写数据请求,将更新数据写入redis节点对应的内存和磁盘;从所述磁盘中读取所述更新数据,并将所述更新数据同步至其他机房。2.根据权利要求1所述的方法,其中,所述响应于写数据请求,将更新数据写入redis节点对应的内存和磁盘,包括:响应于写数据请求,将更新数据分别写入redis节点所属的主节点和从节点各自对应的内存和磁盘。3.根据权利要求1所述的方法,其中,所述从所述磁盘中读取所述更新数据,并将所述更新数据同步至其他机房,包括:利用所述机房的消息系统实时从所述磁盘读出所述更新数据,并将所述更新数据同步至其他机房的消息系统,以便通过所述其他机房的消息系统实时将所述更新数据写入所述其他机房的redis节点对应的内存。4.根据权利要求1所述的方法,其中,所述方法还包括:利用所述机房的消息系统实时接收来自其他机房的同步更新数据,并将所述同步更新数据实时写入所述redis节点对应的内存。5.根据权利要求3或4所述的方法,其中,所述写入redis节点对应的内存和磁盘的更新数据的数据结构中至少包括数据本体、当前时间戳和所属主机标识;其中,所述当前时间戳用于利用所述消息系统校验从所述磁盘读出的更新数据在时序上的一致性或重复性;所述主机...

【专利技术属性】
技术研发人员:贺鹏飞杨明
申请(专利权)人:掌阅科技股份有限公司
类型:发明
国别省市:北京,11

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

1