本发明专利技术提供了一种分布式服务系统数据更新的方法。所述系统包括主数据库、从数据库以及缓存,所述方法包括如下步骤:a)删除所述缓存中的数据;b)在所述标记单元中放入标记;c)对所述主数据库的数据进行更新;d)再次删除所述缓存中的数据,并将所述主数据库中的数据同步到所述从数据库;e)删除所述标记。本发明专利技术还公开一种分布式服务系统数据查询方法以及一种分布式服务系统。其保证了缓存中的数据与数据库的数据一致,消除了因高并发和主从同步延迟带来的数据不一致风险。
【技术实现步骤摘要】
分布式服务系统及其数据更新、数据查询的方法
本专利技术涉及计算机网络数据更新
,特别是一种分布式服务系统及其数据更新以及数据查询的方法。
技术介绍
在大型分布式web服务中,随着用户群的不断增多,对信息系统的访问也越来越多。用户的每次查询请求,信息系统都通过在数据库中进行相应的查找、数据计算等操作,然后将结果返回。查询量增加,信息系统的数据处理量也随之线性增加。为了减轻数据库服务器的访问压力,研发了数据库服务器数据缓存技术。该缓存技术的作用是临时存储用户经常访问的数据,缓存中的数据是数据存储源中数据的拷贝,当用户再次访问已经进行了临时存储的数据时便可以直接返回该数据,而无需再从数据库服务器中获取该数据,由此降低数据库服务器的负担。主从同步模式是一种常见的解决方案,即设置两个存储内容完全一致的数据库,其中一个为主数据库一个为从数据库。所有写入和更新操作都在主数据库上进行,所有查询操作都在从数据库上进行,主数据库发生写入或更新后变化的内容在一定时间内被更新到从数据库。目前,在这种主从同步模式下的数据更新方法为,在对数据进行更新操作时首先删除缓存,然后对数据库的主数据库进行更新。此时,当进行数据查询操作时首先查询缓存,如果缓存中有值则直接返回,如果缓存中没有值则查询数据库的从数据库,并将查询到的值放入缓存中。然而,在这样的解决方案下,可能会导致缓存中的数据与数据库存储的数据不一致的情况,即缓存中的数据为更新前的旧数据的情况。例如,在准备更新操作时,缓存内的数据首先被删除,然后更新主数据库。若在主数据库更新完成前发生一次查询操作,此时按照查询操作的流程,首先会在缓存中进行查找,但由于缓存中数据已经被删除,所以将会在从数据库中查询。假定从数据库查到的数据是A(原数据),在查询结束后这条数据将被写入缓存,即缓存被写入A。而更新操作此时要把数据库更新为B(新数据)。那么将发生数据库中的数据(B)与缓存中的数据(A)不一致,即缓存中保存了错误数据。如果不再发生更新,缓存中的数据将无法更新为B,以后的查询操作所得到的数据都将为缓存中的错误数据A。又例如,在主数据库完成更新操作后,例如已将数据A更新至B时,发生查询请求,将会首先查询缓存,此时因缓存中的数据已在准备更新操作时被删除,缓存中没有数据,因而将查询从数据库。由于新数据B由主数据库同步到从数据库存在延迟,因此在B还未更新到从数据库时,从数据库中的数据仍然为A,因此查询到的数据将为A,继而A将被写入缓存中。如此,即使之后从数据库的数据被同步为B但此后查询到的数据都将为从缓存中查询到数据A,造成结果错误。缘此,需要一种新的分布式服务系统以及新的数据更新、数据查询的方法,来有效地避免在数据库更新后缓存中仍存有更新前的旧数据。
技术实现思路
本专利技术的目的是提供一种分布式服务系统数据库更新、数据查询的方法以及一种分布式服务系统,以保持数据库与缓存的一致性。根据本专利技术的一个方面,提供了一种分布式服务系统数据更新的方法,所述系统包括主数据库、从数据库、缓存及标记单元,所述方法包括如下步骤:a)删除所述缓存中的数据;b)在所述标记单元中放入标记;c)对所述主数据库的数据进行更新;d)再次删除所述缓存中的数据,并将所述主数据库中的数据同步到所述从数据库;e)删除所述标记。优选地,步骤b所述的在所述标记单元中放入标记为,对所述标记单元中某个数据位赋予特定的值,并步骤e所述的删除所述标记为,使上述数据位复位。优选地,步骤b所述的在所述标记单元中放入标记为,在所述标记单元中存入数据,并且步骤e所述的删除所述标记为,删除在所述标记单元中存入的所述数据。优选地,在步骤b中,所述放入标记为创建一个文件,并且在步骤e中,删除所述标记的方式为删除所述文件。优选地,所述标记单元位于所述缓存中。根据本专利技术的另一方面,提供一种分布式服务系统数据查询的方法,系统包括主数据库、从数据库、缓存及标记单元,其中对所述主数据库的数据进行更新时,所述标记单元中存放有标记,在所述主数据库的数据同步至所述从数据库后,所述标记被删除,所述方法包括如下步骤:a)判断所述缓存中是否存在数据,是则进入步骤f;否则进入步骤b;b)判断所述标记单元中是否存在所述标记,是则进入步骤c;否则进入步骤d;c)在所述主数据库中查询数据,然后进入步骤e;d)在所述从数据库中查询数据;e)将查询到的数据写入所述缓存;f)将所述缓存中的数据作为查询结果返回。优选地,所述标记为所述标记单元的某个数据位被赋予的特定值、或者为存入所述标记单元的数据、或者是创建的文件。根据本专利技术的另一方面,提供了一种分布式服务系统,所述系统包括:主数据库,用于存储数据,支持对其的查询操作;从数据库,用于存储数据,并且根据所述主数据库的数据更新其所存储的数据,所述从数据库支持对其的查询操作;缓存,用于存储数据,支持对其的查询操作以及写入操作,并且所述缓存中包括标记单元,其中,对所述主数据库的数据进行更新时,所述缓存中的数据首次被删除,所述主数据库的数据进行更新后,所述缓存中的数据再次被删除;以及标记单元,用于在所述缓存中的数据首次被删除后,存放所述标记,并当所述主数据库中的数据同步到所述从数据库后,所述标记被删除。优选地,当查询所述分布式服务系统中的数据时,首先查询所述缓存,若所述缓存中存有数据,则所述缓存中的数据作为查询结果返回;若所述缓存未存有数据,则判断所述标记单元中是否存在所述标记,是则对所述主数据库进行数据查询,否则对所述从数据库进行数据查询,对所述主数据库或所述从数据库查询的结果写入所述缓存中。优选地,所述标记单元中的所述标记为对所述标记单元中某个数据位赋予的特定值,并且,删除所述标记为,使上述数据位复位。优选地,所述标记单元中的所述标记为存入所述标记单元的数据,并且,删除所述标记为删除所述存入所述标记单元的数据。优选地,所述标记单元中的所述标记为创建的一个文件,并且,删除所述标记为删除所述创建的文件。优选地,所述标记单元位于所述缓存中。根据本专利技术的分布式服务及其数据更新、数据查询的方法,能够有效地避免数据库更新后缓存中仍存有更新前的旧数据。本专利技术的数据更新和数据查询方法特别适用于在高并发的分布式服务和主从数据库环境下,保证了缓存中的数据与数据库的数据一致,消除了因高并发和主从同步延迟带来的数据不一致风险。附图说明参考随附的附图,本专利技术更多的目的、功能和优点将通过本专利技术实施方式的如下描述得以阐明,其中:图1a示意性示出了根据本专利技术一实施例的分布式服务系统的结构框图。图1b示意性示出了根据本专利技术另一实施例的分布式服务系统的结构框图。图2示意性示出了根据本专利技术一实施例的分布式服务系统数据更新方法的流程图。图3示意性示出了根据本专利技术一实施例的分布式服务系统数据查询方法的流程图。具体实施方式通过参考示范性实施例,本专利技术的目的和功能以及用于实现这些目的和功能的方法将得以阐明。然而,本专利技术并不受限于以下所公开的示范性实施例;可以通过不同形式来对其加以实现。说明书的实质仅仅是帮助相关领域技术人员综合理解本专利技术的具体细节。在下文中,将参考附图描述本专利技术的实施例。在附图中,相同的附图标记代表相同或类似的部件,或者相同或类似的步骤。图1a示意性示出了根据本专利技术一实施本文档来自技高网...
【技术保护点】
一种分布式服务系统数据更新的方法,其特征在于,所述系统包括主数据库、从数据库、缓存及标记单元,所述方法包括如下步骤:a)删除所述缓存中的数据;b)在所述标记单元中放入标记;c)对所述主数据库的数据进行更新;d)再次删除所述缓存中的数据,并将所述主数据库中的数据同步到所述从数据库;e)删除所述标记。
【技术特征摘要】
1.一种分布式服务系统数据更新及查询的方法,其特征在于,所述系统包括主数据库、从数据库、缓存及标记单元,所述更新方法包括如下步骤:a)删除所述缓存中的数据;b)在所述标记单元中放入标记;c)对所述主数据库的数据进行更新;d)再次删除所述缓存中的数据,并将所述主数据库中的数据同步到所述从数据库;e)删除所述标记;对所述主数据库的数据进行更新时,所述标记单元中存放有标记,在所述主数据库的数据同步至所述从数据库后,所述标记被删除,所述更新方法包括如下步骤:f)判断所述缓存中是否存在数据,是则进入步骤k;否则进入步骤g;g)判断所述标记单元中是否存在所述标记,是则进入步骤h;否则进入步骤i;h)在所述主数据库中查询数据,然后进入步骤j;i)在所述从数据库中查询数据;j)将查询到的数据写入所述缓存;k)将所述缓存中的数据作为查询结果返回。2.根据权...
【专利技术属性】
技术研发人员:李晓鹏,宋宇鹏,
申请(专利权)人:五八同城信息技术有限公司,
类型:发明
国别省市:天津;12
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。