基于缓存的数据处理方法、系统和存储介质与流程

文档序号:16855648发布日期:2019-02-12 23:15阅读:382来源:国知局
基于缓存的数据处理方法、系统和存储介质与流程

本发明涉及数据处理领域,具体而言,涉及一种基于缓存的数据处理方法、系统和存储介质。



背景技术:

随着信息技术的发展,企业越来越依赖于信息化管理,各业务应用的数据信息,主要存储在数据库中。而随着企业业务的增长,一方面数据规模越来越大,另一方面数据访问频率也越来越高,数据库负载越来越高,企业对这些数据访问的性能要求也越来越高。

一般的数据库性能优化方式包括:调整数据结构、优化sql语句、调整内存硬盘等硬件资源的分配等。但对于一些大规模企业,只靠一般的数据库性能优化方式已经很难满足业务增长的需要。而加大硬件投入的方式,又会增加企业信息系统的建设成本。

同时,对于政府、电信、金融、能源、军工等涉及国计民生的行业或领域的关键业务对于关键数据存储都需要高可用,为了避免因为数据的中断导致各种损失,数据库的高可用已成了企业信息化建设的重中之中。缓存技术被广泛运用于计算机系统的存储和处理中,如内存为硬盘的缓存,此外还有二级缓存等。其特点为,缓存容量一般远小于主存储设备,但处理效率更高。系统在处理时,先将数据从主存储设备放入缓存中,然后在缓存中读取和处理数据,从而达到快速响应的目的。但是目前,暂未有应用层面的数据库缓存处理的相关技术。



技术实现要素:

为解决上述技术问题,本发明提供一种基于缓存的数据处理方法、系统和存储介质,解决当前数据存储量增长后,数据缓存效率低和数据可用性差的问题。

根据本发明实施例的第一方面,提供了一种基于缓存的数据处理方法,所述方法包括:

在用户首次访问系统时,将待存数据存储于缓存数据库中作为缓存数据;

在所述用户再次访问系统时,查询所述缓存数据库是否有该用户的缓存数据,

若所述缓存数据库存储有所述用户的缓存数据,则判断所述缓存数据库中的缓存数据与主数据库中的主存数据是否一致,

如果一致,则直接使用所述缓存数据,如果不一致,则将所述主存数据在所述缓存数据库中重新缓存。

根据本发明实施例的第二方面,提供一种基于缓存的数据处理系统,所述系统包括:

缓存数据库,用于在用户首次访问系统时,将待存数据存储于缓存数据库中作为缓存数据,

主数据库,用于存储主存数据;

其中,所述在用户再次访问系统时,查询所述缓存数据库是否有该用户的缓存数据,若所述缓存数据库存储有所述用户的缓存数据,则判断所述缓存数据库中的缓存数据与主数据库中的主存数据是否一致,如果一致,则直接使用所述缓存数据,如果不一致,则将所述主存数据在所述缓存数据库中重新缓存。

根据本发明实施例的第三方面,提供一种计算机可读存储介质,所述计算机存储介质包含有计算机程序,其中,所述计算机程序在被一个或多个计算机执行时使得所述一个或多个计算机执行如下操作:

所述操作包括如上中任一项所述基于缓存的数据处理方法所包含的步骤。

实施本发明实施例提供的一种基于缓存的数据处理方法、系统和存储介质,具有以下优点:能显著提升业务处理性能,减轻数据库负荷,保证了在大规模高并发下的数据库处理能力,同时提高了系统的可用性。

附图说明

图1是本发明实施例的一种基于缓存的数据处理方法的流程图;

图2是本发明实施例的另一种基于缓存的数据处理方法的流程图;

图3是本发明实施例的一种基于缓存的数据处理系统1的结构示意图;

图4是本发明实施例所述系统1中所述缓存数据库100的结构示意图;

图5是本发明实施例所述系统1中所述主数据库200的结构示意图。

具体实施方式

为使本发明的实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述。

图1是本发明实施例的一种基于缓存的数据处理方法的流程图;参见图1,所述方法包括:

步骤s1,在用户首次访问系统时,将待存数据存储于缓存数据库中作为缓存数据;

步骤s2,在所述用户再次访问系统时,查询所述缓存数据库是否有该用户的缓存数据,

步骤s3,若所述缓存数据库存储有所述用户的缓存数据,则判断所述缓存数据库中的缓存数据与主数据库中的主存数据是否一致,

步骤s4,如果一致,则直接使用所述缓存数据,如果不一致,则将所述主存数据在所述缓存数据库中重新缓存。

在本发明的实施方式中,所述判断所述缓存数据库中的缓存数据与主数据库中的数据是否一致包括:通过对比所述缓存数据与所述主存数据的特征值,判断所述缓存数据库中的缓存数据与主数据库中的数据是否一致。

在本发明的实施方式中,所述方法还包括:根据所述缓存数据库记录数据的访问时间,定期删除长期未访问的数据。

在本发明的实施方式中,所述方法还包括:若所述待存数据未存在所述缓存数据库中,则先将所述待存数据存入所述主数据库中,再缓存至所述缓存数据库中。

本发明利用缓存技术,将访问频率高的数据缓存在轻量级的缓存数据库中,提高访问效率,并减少大规模的主数据库的访问次数,从而提升缓存数据处理的整体性能和数据可用性。通过建立一个轻量级的缓存数据库,变化不那么频繁、交易需多次访问读取、从源头读取十分耗费资源和性能的数据,都放入缓存数据库中。

图2是本发明实施例的另一种基于缓存的数据处理方法的流程图;参见图2,所述方法包括如下步骤:

首先,用户访问后查询缓存数据库是否存在缓存数据;如果是,则判断缓存数据库中是否存有该缓存数据,如果否,则直接存储或访问主数据库;随后,判断缓存数据与主存数据是否一致,如果是,则访问缓存数据库,如果否,则先存储或访问主数据库,而后缓存至缓存数据库;最后将缓存数据库查询到的查询结果输出。

在本发明的实施方式中,一次业务流程中每个页面都会使用到的数据,如用户数据等,在第一次访问时放入缓存数据库,后续页面只需访问缓存即可。当同一用户再次访问系统时,先访问缓存数据库,若数据已存在缓存数据库中,则判断缓存数据与主数据库中的数据是否一致,若一致则直接使用缓存数据,不一致则重新缓存。缓存数据的一致性通过特征值的方式来保证,对主本数据,计算其特征值,并存放在缓存数据库中。当数据发生变更时,特征值也会发生改变,此时访问需重新从主数据库中读取数据并缓存。

在本发明的实施方式中,缓存数据库记录数据访问时间,定时清理长时间未访问的数据,保证数据库访问效率。数据清理的访问时间值需根据具体情况进行权衡。当清理时间值过大时,缓存数据量增多,达不到加快响应时间的目的;当清理时间值过小时,频繁的重新缓存以及清理过多的数据量都会耗费额外的资源,导致数据库性能反而降低。

在本发明的实施方式中,主数据库和缓存数据库的数据表结构保持一致。当主数据库发生故障时,缓存数据库中的数据副本可以保证大部分数据访问不受影响。当缓存数据库发生故障时,交易也可直接切换到读取主数据库中的数据。这样数据库服务意外停止时,在一定时间内仍能正常对用户提供支持,提高了系统的可用性。

图3是本发明实施例的一种基于缓存的数据处理系统1的结构示意图;参见图3,所述系统包括:

缓存数据库100,用于在用户首次访问系统时,将待存数据存储于缓存数据库中作为缓存数据,

主数据库200,用于存储主存数据;

其中,所述在用户再次访问系统时,查询所述缓存数据库100是否有该用户的缓存数据,若所述缓存数据库100存储有所述用户的缓存数据,则判断所述缓存数据库100中的缓存数据与主数据库200中的主存数据是否一致,如果一致,则直接使用所述缓存数据,如果不一致,则将所述主存数据在所述缓存数据库100中重新缓存。

图4是本发明实施例所述系统1中所述缓存数据库100的结构示意图;参见图4,所述缓存数据库100包括:

查询模块110,用于用户查询所述缓存数据库中的缓存数据;

存储模块120,用于用户存储所述缓存数据库中的缓存数据;

判断模块130,用于通过对比所述缓存数据与所述主存数据的特征值,判断所述缓存数据库中的缓存数据与主数据库中的数据是否一致。

在本发明的实施方式中,所述缓存数据库还可包括:

删除模块,用于根据所述缓存数据库记录数据的访问时间,定期删除长期未访问的数据。

图5是本发明实施例所述系统1中所述主数据库200的结构示意图;参见图5,所述主数据库200包括:

存储模块210,用于若所述待存数据未存在所述缓存数据库中,则先将所述待存数据存入所述主数据库中作为所述主存数据;

转存模块220,再将所述主存数据缓存至所述缓存数据库中作为所述缓存数据。

本发明利用缓存技术,对访问频率高的数据,将其缓存在轻量级的缓存数据库中,提高访问效率,而对于大规模的主数据库,减少访问次数,从而提升性能。缓存数据库同时也是主数据库的一个备份,当主数据库发生故障时,缓存数据库可以保证大部分数据访问不受影响,提高了系统的可用性。

另外,本发明还提供一种计算机可读存储介质,所述计算机存储介质包含有计算机程序,其特征在于,所述计算机程序在被一个或多个计算机执行时使得所述一个或多个计算机执行如下操作:所述操作包括如上所述基于缓存的数据处理方法所包含的步骤,在此不再赘述。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件结合硬件平台的方式来实现。基于这样的理解,本发明的技术方案对背景技术做出贡献的全部或者部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。

以上所揭露的仅为本发明的优选实施例而已,当然不能以此来限定本发明的保护范围,因此依本发明权利要求的教导对上述实施例所作的等同变化,仍属于本发明权利要求所涵盖的范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1