CN108090152B - 一种数据同步方法及系统 - Google Patents

一种数据同步方法及系统 Download PDF

Info

Publication number
CN108090152B
CN108090152B CN201711306942.2A CN201711306942A CN108090152B CN 108090152 B CN108090152 B CN 108090152B CN 201711306942 A CN201711306942 A CN 201711306942A CN 108090152 B CN108090152 B CN 108090152B
Authority
CN
China
Prior art keywords
cache
database
task
refreshing
refreshing task
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
Application number
CN201711306942.2A
Other languages
English (en)
Other versions
CN108090152A (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.)
Advanced Nova Technology Singapore Holdings Ltd
Original Assignee
Advanced New Technologies 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 Advanced New Technologies Co Ltd filed Critical Advanced New Technologies Co Ltd
Priority to CN201711306942.2A priority Critical patent/CN108090152B/zh
Publication of CN108090152A publication Critical patent/CN108090152A/zh
Application granted granted Critical
Publication of CN108090152B publication Critical patent/CN108090152B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24552Database cache management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Computing Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本说明书公开一种数据同步方法及系统,第一服务端可以根据第一数据库中变更的数据生成第一服务端和第二服务端各自用于根据数据库对缓存进行同步的缓存刷新任务,并存储在第一数据库中,通过数据库同步的方式与第二数据库进行同步。以便,后续各服务端可以根据各自数据库中的缓存刷新任务根据各自的数据库刷新各自的缓存。

Description

一种数据同步方法及系统
技术领域
本说明书涉及计算机技术领域,尤其涉及一种数据同步方法及系统。
背景技术
目前,互联网业务在各行各业中蓬勃发展,同时各种业务产生的数据量也越来越大,所以通常会为互联网业务建立专用的业务服务端(或称服务器、机房),用于支持对各种互联网业务进行处理。同时,为了保证业务持续可用,可以为业务建立多个服务端,当其中一个服务端出现故障的情况下,通过快速切换,将业务流量切换到其他服务端中,从而有效避免单服务端故障带来的业务不可用的情况。
服务端中通常会包含支持业务处理的数据库以及处理业务的服务器应用(下文简称应用),该应用可以根据用户的各种业务请求,在数据库中进行添加、删除、修改等操作,并进行保存。并且一般情况下,应用会根据数据库中变更的数据同步至服务端的缓存中,以提高数据的处理能力,所以就需要使得数据库和缓存之间数据一致,而对于多个服务端而言,需要使得各服务端的数据库之间数据一致,且各自服务端内的数据库和缓存之间数据一致性。而在数据同步的过程中多个服务端之间过多的进行交互必然会增加复杂性以及网络开销,所以需要提供一种交互简便且节约网络资源的数据同步方案。
发明内容
本说明书实施例提供一种数据同步方法,用于通过交互简便且网络开销较低的方式,对数据库之间以及各自的数据库与缓存之间进行数据同步。
本说明书实施例提供一种数据同步系统,用于通过交互简便且网络开销较低的方式,对数据库之间以及各自的数据库与缓存之间进行数据同步。
为解决上述技术问题,本说明书实施例是这样实现的:
本说明书实施例采用下述技术方案:
一种数据同步方法,包括:
第一服务端根据第一数据库中变更的数据生成第一缓存刷新任务以及第二缓存刷新任务;
第一服务端将所述第一缓存刷新任务以及所述第二缓存刷新任务存储至第一数据库中;
在所述第一数据库与第二数据库之间进行同步,所述第二数据库是第二服务端中的数据库;
其中,所述第一缓存刷新任务用于根据所述第一数据库中所述变更的数据对所述第一缓存进行同步;所述第二缓存刷新任务用于根据所述第二数据库中所述变更的数据对所述第二缓存进行同步。
可选的,所述第二服务端是多个用于同时提供服务的服务端中所述第一服务端以外的服务端。
可选的,所述方法还包括:
第一服务端根据所述第一缓存刷新任务刷新所述第一缓存,并在刷新成功后删除所述第一缓存刷新任务;
第二服务端根据所述第二缓存刷新任务刷新所述第二缓存,并在刷新成功后删除所述第二缓存刷新任务。
可选的,所述方法具体包括:
第一服务端定时从所述第一数据库中获取第一缓存刷新任务,并根据获取到的第一缓存刷新任务刷新所述第一缓存,并在刷新成功后删除第一缓存刷新任务;
第二服务端定时从所述第二数据库中获取第二缓存刷新任务,并根据获取到的第二缓存刷新任务刷新所述第二缓存,并在刷新成功后删除第二缓存刷新任务。
可选的,所述缓存刷新任务为tair缓存刷新任务。
可选的,在所述第一数据库与第二数据库之间进行同步,包括:
通过数据库传输组件,在所述第一数据库与第二数据库之间进行同步。
一种数据同步方法,包括:
服务端根据数据库中变更的数据生成缓存刷新任务,并存储至数据库中;
服务端根据所述缓存刷新任务刷新缓存;
在刷新成功后删除缓存刷新任务;
其中,所述缓存刷新任务用于根据所述数据库中所述变更的数据对所述缓存进行同步。
可选的,服务端根据所述缓存刷新任务刷新缓存,包括:
服务端定时从所述数据库中获取缓存刷新任务,并根据获取到的缓存刷新任务刷新缓存。
一种数据同步系统,包括:第一服务端以及第二服务端,其中,
所述第一服务端,
根据第一数据库中变更的数据生成第一缓存刷新任务以及第二缓存刷新任务;
将所述第一缓存刷新任务以及所述第二缓存刷新任务存储至第一数据库中;
在所述第一数据库与第二数据库之间进行同步,所述第二数据库是所述第二服务端中的数据库;
其中,所述第一缓存刷新任务用于根据所述第一数据库中所述变更的数据对所述第一缓存进行同步;所述第二缓存刷新任务用于根据所述第二数据库中所述变更的数据对所述第二缓存进行同步。
可选的,所述第二服务端是多个用于同时提供服务的服务端中所述第一服务端以外的服务端。
可选的,
所述第一服务端,根据所述第一缓存刷新任务刷新所述第一缓存,并在刷新成功后删除所述第一缓存刷新任务;
所述第二服务端,根据所述第二缓存刷新任务刷新所述第二缓存,并在刷新成功后删除所述第二缓存刷新任务。
可选的,
所述第一服务端,定时从所述第一数据库中获取第一缓存刷新任务,并根据获取到的第一缓存刷新任务刷新所述第一缓存,并在刷新成功后删除第一缓存刷新任务;
所述第二服务端,定时从所述第二数据库中获取第二缓存刷新任务,并根据获取到的第二缓存刷新任务刷新所述第二缓存,并在刷新成功后删除第二缓存刷新任务。
一种数据同步系统,包括服务端,
根据数据库中变更的数据生成缓存刷新任务,并存储至数据库中;
根据所述缓存刷新任务刷新缓存;
在刷新成功后删除缓存刷新任务;
其中,所述缓存刷新任务用于根据所述数据库中所述变更的数据对所述缓存进行同步。
由以上实施例提供的技术方案可见,第一服务端可以在第一数据库发生数据变更后,根据变更的数据分别生成用于将第一数据库和第一缓存之间、以及第二数据库和第二缓存之间进行数据同步的第一缓存刷新任务和第二缓存刷新任务,并将两缓存刷新任务存储在第一数据库中,再与第二数据库进行同步,使两数据库保持数据一致且包含用于刷新各自缓存的缓存刷新任务。以便后续各服务端可以根据各自数据库中的缓存刷新任务对各自的缓存进行刷新。根据变更的数据生成适用于不同服务端的两缓存刷新任务,并通过数据库之间的同步即可使得各自服务端执行各自的缓存刷新任务,交互简便且网络开销较低。
附图说明
为了更清楚地说明本说明书实施例或现有的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本说明书实施例提供的数据同步方法的流程示意图;
图2为本说明书实施例提供的异地双活服务端的示意图;
图3为本说明书实施例提供的异地多活服务端的示意图;
图4为本说明书实施例提供的异地多活服务端的示意图;
图5为本说明书实施例提供的根据缓存刷新任务进行数据同步的具体流程示意图;
图6为本说明书实施例提供的数据同步方法的示意图;
图7为本说明书实施例提供的数据同步方法的示意图;
图8为本说明书实施例提供的数据同步系统的结构图;
图9为本说明书实施例提供的数据同步方法的流程示意图;
图10为本说明书实施例提供的数据同步系统的结构图;
图11为本说明书实施例提供的数据同步方法的示意图。
具体实施方式
为使本说明书的目的、技术方案和优点更加清楚,下面将结合具体实施例及相应的附图对本说明书的技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本说明书保护的范围。
以下结合附图,详细说明本说明书中各实施例提供的技术方案。
图1是本申请的一个实施例提供的数据同步方法的流程示意图。图1的方法可以由服务端应用执行。在本实施例中,该服务端应用可以设置在服务端中。图1的方法可以包括:
S12:第一服务端根据第一数据库中变更的数据生成第一缓存刷新任务以及第二缓存刷新任务。
S14:第一服务端将该第一缓存刷新任务以及该第二缓存刷新任务存储至第一数据库中。
S16:在该第一数据库与第二数据库之间进行同步。
提供服务的服务端中,每个服务端可以保持独立,如图2所示,可以有相互独立的第一服务端以及第二服务端,每个服务端中均设有独立的数据库、缓存、以及应用。即对于某个业务而言,可以存在提供服务的两个服务端,这两个服务端可以称为双活服务端,双活可以是指为某个业务建立的两个服务端,比如可以是IDC(互联网数据中心),同时提供对外业务服务。当单个IDC发生故障时,可以迅速切到其他IDC,以保障业务的可用性。而在实际应用中,双活的服务端通常可以是异地的,即可以是在不同的地域建立的IDC,可以称为异地双活服务端(比如可以是同城异地、也可以是跨洲的异地双活服务端),图2即可以是异地双活服务端的示意图,其中第一服务端中可以设置有第一数据库、第一缓存、以及第一应用,第二服务端中可以设置有第二数据库、第二缓存、以及第二应用。
可选的,本实施例服务端中的缓存可以是tair缓存,tair可以是一个Key/Value结构数据的解决方案,可以支持基于内存和文件的两种存储方式,分别与缓存和持久化存储对应,由于查询速度较快,可以多用于查多该少的场景中。基于此,可以将数据库中的数据同步至tair缓存中,以提高查询速度。
当应用接收到用户的业务请求后,可以在缓存中执行查询操作,当需要变更数据时,则可以在数据库中执行添加、删除、修改等操作。即当发生数据变更后,可以先将变更结果保存在数据库中。比如用户请求修改自己的会员信息,则应用可以根据该请求找到用户对应的会员信息并修改,将修改结果保存在数据库中。具体比如,关于会员信息的业务流量均可以接入到第一服务端,则第一应用可以根据接到的会员信息的修改请求,将变更的数据保存在第一数据库中。
在前文已经介绍,为了提高数据的处理能力,通常会将数据库中变更的数据同步至缓存中,此时可以为变更的数据生成第一缓存刷新任务,该第一缓存刷新任务可以是针对第一服务端的、用于根据第一数据库中变更的数据对第一缓存进行同步的任务。具体地,该第一缓存刷新任务中可以记载有发生变更的数据对应的Key,以便可以通过该Key查询到对应的变更后的Value。比如会员信息的修改请求可以是修改地址信息,并将修改后的地址信息保存在对应该会员的信息中,则该会员的唯一标识0001就可以对应一个Key:0001,以便后续可以通过Key:0001从第一数据库中查询到该会员的所有信息,从而可以根据Key:0001对应的会员信息,对tair缓存进行数据同步。
由于可以以异地双活服务端的方案为例进行介绍,则第一服务端可以有一个对应的第二服务端,为了保持两服务端之间的缓存的一致性,数据库之间的一致性可以是基础条件,即第一数据库和第二数据库之间可以进行数据同步,从而达到当其中一个数据库中的数据发生变更时,则可以在另一个对应的数据库中体现。比如,当第一应用根据接收到的一个用户的会员信息修改请求,变更了第一数据库后,那么可以通过数据库同步使第二数据库与第一数据库保持一致,类似地,当第二应用根据接收到的另一个用户的会员信息修改请求,变更了第二数据库后,那么可以再通过数据库同步使第一数据库与第二数据库保持一致,即对于两数据库而言,不论哪个数据库发生变化,均可以通过数据库同步保持两数据库一致。
在上文介绍可以为变更的数据生成第一缓存刷新任务,那么为了使第二缓存与第二数据库之间数据一致,还可以由第一服务端根据第一数据库中变更的数据生成第二缓存刷新任务,而该第二缓存刷新任务则可以用于根据第二数据库中该变更的数据(由于两数据库之间可以保持同步,那么第一数据库中变更的数据,也可以是第二数据库中变更的数据)对第二缓存进行同步。
由于可以通过数据库同步实现数据库一致,则可以将第一缓存刷新任务以及第二缓存刷新任务存储至第一数据库中,以便后续的第一应用可以根据第一缓存刷新任务对第一数据库与第一tair缓存之间进行数据同步,且后续第二应用可以根据第二数据库中的第二缓存刷新任务对第二数据库与第二tair缓存之间进行数据同步。
可选的,在该第一数据库与第二数据库之间进行同步,可以包括:通过数据库传输组件,在第一数据库与第二数据库之间进行同步,数据库传输组件可以支持以数据库为核心的结构化存储产品之间的数据传输,可以是一种集数据迁移、数据订阅及实时同步于一体的数据传输服务,可以用于异地服务端数据库之间的数据同步。如图2所示,第一数据库和第二数据库之间可以通过数据库传输组件,保持两数据库之间的数据一致性。
前文以异地双活服务端的方案进行了介绍,但在实际应用中,也可以存在异地多活服务端的方案,即针对某个业务而言,可以存在两个以上、且分别在不同地域的服务端,当其中一个服务端出现故障后,可以将该服务端的业务流量切换到多个用于同时提供服务的服务端中该服务端以外的任一服务端中。所以,在一种实施方式中,第二服务端可以是多个用于同时提供服务的服务端中第一服务端以外的服务端。
如图3所示,针对某个业务而言,可以有多个用于同时提供服务的服务端,第一服务端以外的服务端中可以有一个第二服务端,比如,编号为1的服务端可以是第一服务端,编号为2的服务端可以是第二服务端,而对于该业务而言,也可以是编号为5的服务端为第二服务端,也即在异地多活服务端的方案中,第二服务端可以是第一服务端以外的任一服务端。
如图4所示,针对某个业务而言,可以有多个用于同时提供服务的服务端,而第一服务端以外的服务端中可以有多于一个的第二服务端,比如编号为1的服务端可以是第一服务端,编号为2和10的服务端可以是第二服务端,也即在异地多活服务端的方案中,第二服务端可以是第一服务端以外的至少两个服务端。而在实施例中,第一服务端也可以生成至少两个第二缓存刷新任务,分别应用于至少两个第二服务端执行缓存刷新任务。且将第一缓存刷新任务以及至少两个第二缓存刷新任务存储至第一数据库中,以便在第一数据库与至少两个第二数据库之间进行同步。而在实际应用中,也可以将多个用于同时提供服务的服务端中第一服务端以外的全部服务端均设定为第二服务端,比如有一个包含10个服务端的异地多活服务端方案,其中一个服务端出现了数据变更,则该服务端可以设定为第一服务端,而其他9个服务端设定为第二服务端,第一服务端可以生成一个第一缓存刷新任务,而同时生成9个第二缓存刷新任务,并将10个缓存刷新任务存储至第一数据库中,通过数据库之间进行同步,可以使10个缓存刷新任务存储至所有服务端的数据库中。
下面,将结合具体的实施例,对本申请实施例的方法作进一步的描述。
图5是本说明书实施例提供的根据缓存刷新任务进行数据同步的具体流程示意图。该方法可以应用在S16之后,由服务端应用执行。图5的方法可包括:
S22:第一服务端根据该第一缓存刷新任务刷新第一缓存,并在刷新成功后删除第一缓存刷新任务。
在S12生成了第一缓存刷新任务后,第一服务端中的第一应用则可以根据该第一缓存刷新任务刷新第一缓存,具体地,在前文已经介绍,缓存刷新任务中可以记载有发生数据变更对应的Key,则第一应用可以据此在第一数据中进行查询,将查询到的Value更新至第一缓存中该Key对应的Value中。由于在刷新成功后,就无需再次在进行刷新,所以可以在刷新成功后删除第一缓存刷新任务,即可以从第一数据库中删除刷新成功的第一缓存刷新任务。
当刷新失败后,由于未完成缓存与数据库的同步,所以可以在刷新失败后保留第一缓存刷新任务,以便后续再次进行缓存刷新。
可选的,为了保证缓存和数据库之间的数据一致性,本步骤可以包括:第一服务端定时从第一数据库中获取第一缓存刷新任务,并根据获取到的第一缓存刷新任务刷新第一缓存,并在执行成功后删除第一缓存刷新任务。具体地,可以设置一个定时任务,可以定时从第一数据库中获取第一缓存刷新任务,并根据上述方式对缓存进行刷新,在实际应用中,有可能出现成功或失败两种结果,当刷新成功后,可以删除第一缓存刷新任务,当刷新失败后,则可以继续保留第一缓存刷新任务,以便下次定时任务再次刷新,直到最终成功后,删除第一缓存刷新任务。
S24:第二服务端根据该第二缓存刷新任务刷新第二缓存,并在刷新成功后删除第二缓存刷新任务。
与S22类似地,第二服务端中的第二应用,也可以根据该第二缓存刷新任务刷新第二缓存,并在刷新成功后,删除第二缓存刷新任务。具体地,由于第一应用生成了第二缓存刷新任务,并通过数据库同步,使得第二数据库中存储有第二缓存刷新任务,所以也可以定时从第二数据库中获取第二缓存刷新任务,并根据获取到的第二缓存刷新任务刷新第二缓存,并在刷新成功后删除第二缓存刷新任务。当刷新失败后,保留第二缓存刷新任务,以便下次定时任务再次刷新,直到最终成功后,删除第二缓存刷新任务。
上述流程不仅可以适用于只有两个服务端的异地双活服务端的方案,也可以适用于异地多活服务端的方案,比如,对于异地多活服务端的方案,每个第二服务端可以从同步后的各自的第二数据库中获取对应各自的第二缓存刷新任务并执行,在执行完成后可以删除。由于数据库之间可以实现同步,所以在其中一个第二服务端中删除了数据库中对应自己的第二缓存刷新任务,也可以认为在所有数据库中,均删除了该第二缓存刷新任务。比如,接前文“包含10个服务端的异地多活服务端方案”的举例,第一服务端可以生成第一缓存刷新任务以及第二缓存刷新任务1、第二缓存刷新任务2……第二缓存刷新任务9,分别对应9个第二服务端。在第一数据库与第二数据库之间进行同步后,所有服务端的数据库中均可以存储有这10个缓存刷新任务,当其中一个第二服务端获取对应自己的第二缓存刷新任务,并执行成功后,可以删除该第二缓存刷新任务,比如第二缓存刷新任务8被删除,则通过数据库同步,其他9个服务端中的第二缓存刷新任务8,也同时被删除。
图6是本说明书实施例提供的数据同步方法的示意图。
第一应用可以先根据业务请求将变更数据保存至第一数据库中,此后可以根据变更的数据,生成第一缓存刷新任务以及第二缓存刷新任务,并存储至第一数据库中,第一数据库可以通过数据库传输组件与第二数据库进行同步,从而可以将变更的数据、以及第二缓存刷新任务同步至第二数据库中。
第一应用可以根据该生成的第一缓存刷新任务刷新第一缓存,并在刷新成功后删除第一缓存刷新任务,在实际应用中,当刷新失败后可以保留第一缓存刷新任务,以便第一应用的定时任务可以在后续定时从第一数据库中获取第一缓存刷新任务,刷新任务刷新第一缓存,刷新成功后进行删除,刷新失败后继续保留,直到后续的定时任务刷新成功后,即可删除。
第二应用可以根据数据库中的第二缓存刷新任务刷新第二缓存,具体地,也可以通过定时任务,定时从第二数据库中获取第二缓存刷新任务,并根据获取到的第二缓存刷新任务刷新第二缓存,并在刷新成功后删除第二缓存刷新任务,刷新失败后继续保留,直到后续的定时任务刷新成功后,即可删除。如图7所示,也是本说明书实施例提供的数据同步的示意图。其中,第一应用可以在生成第一缓存刷新任务后,执行该任务,在刷新失败后,可以由后续的定时任务进行刷新,直至刷新成功。而第二应用可以根据定时任务,定时获取第二数据库中的第二缓存刷新任务并刷新第二缓存。
图8是本说明书实施例提供的数据同步系统的结构图,可以包括:第一服务端32以及第二服务端34,其中,
所述第一服务端32,可以
根据第一数据库中变更的数据生成第一缓存刷新任务以及第二缓存刷新任务;
将所述第一缓存刷新任务以及所述第二缓存刷新任务存储至第一数据库中;
在所述第一数据库与第二数据库之间进行同步,所述第二数据库是第二服务端34中的数据库;
其中,所述第一缓存刷新任务用于根据所述第一数据库中所述变更的数据对所述第一缓存进行同步;所述第二缓存刷新任务用于根据所述第二数据库中所述变更的数据对所述第二缓存进行同步。
可选的,所述第二服务端是多个用于同时提供服务的服务端中所述第一服务端以外的服务端。
可选的,
第一服务端32,可以根据所述第一缓存刷新任务刷新所述第一缓存,并在刷新成功后删除所述第一缓存刷新任务;
第二服务端34,可以根据所述第二缓存刷新任务刷新所述第二缓存,并在刷新成功后删除所述第二缓存刷新任务。
可选的,
第一服务端32,可以定时从所述第一数据库中获取第一缓存刷新任务,并根据获取到的第一缓存刷新任务刷新所述第一缓存,并在刷新成功后删除第一缓存刷新任务;
第二服务端34,可以定时从所述第二数据库中获取第二缓存刷新任务,并根据获取到的第二缓存刷新任务刷新所述第二缓存,并在刷新成功后删除第二缓存刷新任务。
可选的,所述缓存刷新任务可以为tair缓存刷新任务。
可选的,所述第一服务端32,可以通过数据库传输组件,在所述第一数据库与第二数据库之间进行同步。
由以上实施例提供的技术方案可见,在本说明书提供的实施例中,第一服务端可以在第一数据库发生数据变更后,根据变更的数据分别生成用于将第一数据库和第一缓存之间、以及第二数据库和第二缓存之间进行数据同步的第一缓存刷新任务和第二缓存刷新任务,并将两缓存刷新任务存储在第一数据库中,再与第二数据库进行同步,使两数据库保持数据一致且包含用于刷新各自缓存的缓存刷新任务。以便后续各服务端可以根据各自数据库中的缓存刷新任务对各自的缓存进行刷新。根据变更的数据生成适用于不同服务端的两缓存刷新任务,并通过数据库之间的同步即可使得各自服务端执行各自的缓存刷新任务,交互简便且网络开销较低。
另外,当刷新任务失败后,可以保留在各自的数据库中,通过定时任务的方式执行数据库中保留的缓存刷新任务,直至成功后删除,可以较大程度保证数据库与缓存之间的数据一致性。
图9是本申请的另一个实施例提供的数据同步方法的流程图。该方法可由服务端应用执行。在本申请实施例中,该接服务端应用可以设置在服务端中。图9的方法可包括:
S42:服务端根据数据库中变更的数据生成缓存刷新任务,并存储至数据库中。
S44:服务端根据生成的缓存刷新任务刷新缓存。
S46:在执行成功后删除缓存刷新任务。
本实施例的数据同步方法可以应用于单个服务端的场景中,服务端应用可以根据数据库中变更的数据生成缓存刷新任务。该缓存刷新任务可以用于根据数据库中变更的数据对缓存进行同步,对于缓存刷新任务,可以存储至数据库中。
本步骤中,可以与前文实施例类似地,应用可以根据生成的缓存刷新任务刷新缓存,具体地,也可以根据缓存刷新任务中的Key,查询到数据库中的Value,更新到缓存对应的Key/Value中。
具体地,本步骤还可以包括:服务端定时从数据库中获取缓存刷新任务,并根据获取到的缓存刷新任务刷新缓存。具体地,与前文实施例类似地,可以从数据库中获取缓存刷新任务,并据此对缓存进行刷新。
当缓存刷新任务成功后,则可以删除,在实际应用中,当刷新失败后,则可以保留在数据库中,以便下次定时任务继续刷新,直至成功后删除。
图10是本说明书实施例提供的数据同步系统的结构图,可以包括:第一服务端52,可以
根据数据库中变更的数据生成缓存刷新任务,并存储至数据库中;
根据所述缓存刷新任务刷新缓存;
在刷新成功后删除缓存刷新任务;
其中,所述缓存刷新任务用于根据所述数据库中所述变更的数据对所述缓存进行同步。
可选的,第一服务端52,可以定时从所述数据库中获取缓存刷新任务,并根据获取到的缓存刷新任务刷新缓存。
由以上实施例提供的技术方案可见,以及如图11所示的数据同步的示意图,服务端可以在数据库发生数据变更后,根据变更的数据生成用于将数据库和缓存之间进行数据同步的缓存刷新任务,服务端可以根据缓存刷新任务对缓存进行刷新,在刷新成功后删除缓存刷新任务,可以使数据库与缓存之间数据一致,另外,在刷新失败后,可以保留在数据库中,通过定时任务的方式执行数据库中保留的缓存刷新任务,直至成功后删除,较大程度的保证了数据库与缓存之间的数据一致性。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本说明书时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本说明书的实施例可提供为方法、系统、或计算机程序产品。因此,本说明书可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本说明书可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本说明书是参照根据本说明书实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本说明书的实施例可提供为方法、系统或计算机程序产品。因此,本说明书可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本说明书可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本说明书可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本说明书,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本说明书的实施例而已,并不用于限制本说明书。对于本领域技术人员来说,本说明书可以有各种更改和变化。凡在本说明书的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本说明书的权利要求范围之内。

Claims (13)

1.一种数据同步方法,包括:
第一服务端根据第一数据库中变更的数据生成第一缓存刷新任务以及第二缓存刷新任务,所述第一缓存刷新任务和所述第二缓存刷新任务中记载有所述变更的数据对应的Key;
第一服务端将所述第一缓存刷新任务以及所述第二缓存刷新任务存储至第一数据库中;
在所述第一数据库与第二数据库之间进行同步,所述第二数据库是第二服务端中的数据库;
其中,所述第一缓存刷新任务用于根据记载的所述变更的数据对应的Key查询到所述第一数据库中所述Key对应的Value时更新所述Key对应的Value到所述第一缓存中,以对所述第一缓存进行同步;所述第二缓存刷新任务用于根据所述变更的数据对应的Key查询到所述第二数据库中所述Key对应的Value时更新所述Key对应的Value到所述第二缓存中,以对所述第二缓存进行同步。
2.如权利要求1所述的方法,
所述第二服务端是多个用于同时提供服务的服务端中所述第一服务端以外的服务端。
3.如权利要求1所述的方法,所述方法还包括:
第一服务端根据所述第一缓存刷新任务刷新所述第一缓存,并在刷新成功后删除所述第一缓存刷新任务;
第二服务端根据所述第二缓存刷新任务刷新所述第二缓存,并在刷新成功后删除所述第二缓存刷新任务。
4.如权利要求3所述的方法,所述方法具体包括:
第一服务端定时从所述第一数据库中获取第一缓存刷新任务,并根据获取到的第一缓存刷新任务刷新所述第一缓存,并在刷新成功后删除第一缓存刷新任务;
第二服务端定时从所述第二数据库中获取第二缓存刷新任务,并根据获取到的第二缓存刷新任务刷新所述第二缓存,并在刷新成功后删除第二缓存刷新任务。
5.如权利要求1~4中任一项所述的方法,包括:
所述缓存刷新任务为tair缓存刷新任务。
6.如权利要求1~4中任一项所述的方法,在所述第一数据库与第二数据库之间进行同步,包括:
通过数据库传输组件,在所述第一数据库与第二数据库之间进行同步。
7.一种数据同步方法,包括:
服务端根据数据库中变更的数据生成缓存刷新任务,并存储至数据库中,所述缓存刷新任务中记载有所述变更的数据对应的Key;
服务端根据所述缓存刷新任务刷新缓存;
在刷新成功后删除缓存刷新任务;
其中,所述缓存刷新任务用于根据记载的所述变更的数据对应的Key查询到所述数据库中所述Key对应的Value时更新所述Key对应的Value到所述缓存中,以对所述缓存进行同步。
8.如权利要求7所述的方法,服务端根据所述缓存刷新任务刷新缓存,包括:
服务端定时从所述数据库中获取缓存刷新任务,并根据获取到的缓存刷新任务刷新缓存。
9.一种数据同步系统,包括:第一服务端以及第二服务端,其中,
所述第一服务端,
根据第一数据库中变更的数据生成第一缓存刷新任务以及第二缓存刷新任务,所述第一缓存刷新任务和所述第二缓存刷新任务中记载有所述变更的数据对应的Key;
将所述第一缓存刷新任务以及所述第二缓存刷新任务存储至第一数据库中;
在所述第一数据库与第二数据库之间进行同步,所述第二数据库是所述第二服务端中的数据库;
其中,所述第一缓存刷新任务用于根据记载的所述变更的数据对应的Key查询到所述第一数据库中所述Key对应的Value时更新所述Key对应的Value到所述第一缓存中,以对所述第一缓存进行同步;所述第二缓存刷新任务用于根据记载的所述变更的数据对应的Key查询到所述第二数据库中所述Key对应的Value时更新所述Key对应的Value到所述第二缓存中,以对所述第二缓存进行同步。
10.如权利要求9所述的系统,
所述第二服务端是多个用于同时提供服务的服务端中所述第一服务端以外的服务端。
11.如权利要求9所述的系统,
所述第一服务端,根据所述第一缓存刷新任务刷新所述第一缓存,并在刷新成功后删除所述第一缓存刷新任务;
所述第二服务端,根据所述第二缓存刷新任务刷新所述第二缓存,并在刷新成功后删除所述第二缓存刷新任务。
12.如权利要求11所述的系统,
所述第一服务端,定时从所述第一数据库中获取第一缓存刷新任务,并根据获取到的第一缓存刷新任务刷新所述第一缓存,并在刷新成功后删除第一缓存刷新任务;
所述第二服务端,定时从所述第二数据库中获取第二缓存刷新任务,并根据获取到的第二缓存刷新任务刷新所述第二缓存,并在刷新成功后删除第二缓存刷新任务。
13.一种数据同步系统,包括服务端,
根据数据库中变更的数据生成缓存刷新任务,并存储至数据库中,所述缓存刷新任务中记载有所述变更的数据对应的Key;
根据所述缓存刷新任务刷新缓存;
在刷新成功后删除缓存刷新任务;
其中,所述缓存刷新任务用于根据记载的所述变更的数据对应的Key查询到所述数据库中所述Key对应的Value时更新所述Key对应的Value到所述缓存中,以对所述缓存进行同步。
CN201711306942.2A 2017-12-11 2017-12-11 一种数据同步方法及系统 Active CN108090152B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201711306942.2A CN108090152B (zh) 2017-12-11 2017-12-11 一种数据同步方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711306942.2A CN108090152B (zh) 2017-12-11 2017-12-11 一种数据同步方法及系统

Publications (2)

Publication Number Publication Date
CN108090152A CN108090152A (zh) 2018-05-29
CN108090152B true CN108090152B (zh) 2021-11-30

Family

ID=62174583

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711306942.2A Active CN108090152B (zh) 2017-12-11 2017-12-11 一种数据同步方法及系统

Country Status (1)

Country Link
CN (1) CN108090152B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109299146B (zh) * 2018-09-18 2020-09-25 交控科技股份有限公司 一种数据同步系统及方法
CN111460034B (zh) * 2020-03-25 2024-02-23 聚好看科技股份有限公司 一种数据库双向同步方法、同步单元及系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102023973A (zh) * 2009-09-14 2011-04-20 中国移动通信集团公司 一种应用缓存服务器与数据库同步的方法、装置和系统
CN103078927A (zh) * 2012-12-28 2013-05-01 合一网络技术(北京)有限公司 一种key-value数据分布式缓存系统及其方法
CN103164422A (zh) * 2011-12-09 2013-06-19 百度在线网络技术(北京)有限公司 采用通用数据存储格式进行数据同步的方法、设备与系统
CN106997378A (zh) * 2017-03-13 2017-08-01 摩贝(上海)生物科技有限公司 基于Redis的数据库数据聚合同步的方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7062515B1 (en) * 2001-12-28 2006-06-13 Vignette Corporation System and method for the synchronization of a file in a cache
CN101132395B (zh) * 2006-08-22 2010-09-08 阿里巴巴集团控股有限公司 一种实现服务器之间的数据同步的方法及系统
CN103716343B (zh) * 2012-09-29 2016-11-09 重庆新媒农信科技有限公司 基于数据缓存同步的分布式业务请求处理方法及系统
CN107153644B (zh) * 2016-03-02 2021-06-04 创新先进技术有限公司 一种数据同步方法及装置
US10372559B2 (en) * 2016-06-07 2019-08-06 International Business Machines Corporation Managing a redundant computerized database using a replicated database cache

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102023973A (zh) * 2009-09-14 2011-04-20 中国移动通信集团公司 一种应用缓存服务器与数据库同步的方法、装置和系统
CN103164422A (zh) * 2011-12-09 2013-06-19 百度在线网络技术(北京)有限公司 采用通用数据存储格式进行数据同步的方法、设备与系统
CN103078927A (zh) * 2012-12-28 2013-05-01 合一网络技术(北京)有限公司 一种key-value数据分布式缓存系统及其方法
CN106997378A (zh) * 2017-03-13 2017-08-01 摩贝(上海)生物科技有限公司 基于Redis的数据库数据聚合同步的方法

Also Published As

Publication number Publication date
CN108090152A (zh) 2018-05-29

Similar Documents

Publication Publication Date Title
CN108280080B (zh) 一种数据同步方法、装置以及电子设备
CN105138571B (zh) 分布式文件系统及其存储海量小文件的方法
CN105630819B (zh) 一种缓存数据的刷新方法和装置
CN107153644B (zh) 一种数据同步方法及装置
CN106899654B (zh) 一种序列值生成方法、装置及系统
CN110784498B (zh) 一种个性化数据容灾方法及装置
CN106375360B (zh) 一种图数据更新方法、装置及系统
US11563805B2 (en) Method, apparatus, client terminal, and server for data processing
CN103581207A (zh) 云端数据存储系统及基于该系统的数据存储与共享方法
CN107734017B (zh) 数据服务方法及系统
CN108090152B (zh) 一种数据同步方法及系统
CN111694865A (zh) 基于分布式系统的四层结构数据获取方法和装置
CN110674187A (zh) 一种全局唯一序列号的生成方法
CN107493309B (zh) 一种分布式系统中的文件写入方法及装置
CN110740155A (zh) 分布式系统中的请求处理方法及装置
CN110581784B (zh) 一种节点健康检查方法、装置及设备
CN112579877A (zh) 信源系统的控制方法、装置、存储介质和设备
CN110532243A (zh) 数据处理方法、装置和电子设备
JP2021508867A (ja) データベースをクエリするためのシステム、方法および装置
CN115134373A (zh) 数据同步方法、装置、存储介质及电子设备
CN110413427B (zh) 订阅数据拉取方法、装置、设备及存储介质
CN113656496A (zh) 数据处理方法及系统
CN109101514A (zh) 数据导入方法及装置
CN109471894B (zh) 一种新型分散式文件与对象统一存储的系统及方法
CN110928895B (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
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20200924

Address after: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman, British Islands

Applicant after: Innovative advanced technology Co.,Ltd.

Address before: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman, British Islands

Applicant before: Advanced innovation technology Co.,Ltd.

Effective date of registration: 20200924

Address after: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman, British Islands

Applicant after: Advanced innovation technology Co.,Ltd.

Address before: A four-storey 847 mailbox in Grand Cayman Capital Building, British Cayman Islands

Applicant before: Alibaba Group Holding Ltd.

GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20240228

Address after: Guohao Times City # 20-01, 128 Meizhi Road, Singapore

Patentee after: Advanced Nova Technology (Singapore) Holdings Ltd.

Country or region after: Singapore

Address before: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman, British Islands

Patentee before: Innovative advanced technology Co.,Ltd.

Country or region before: Cayman Islands