一种基于缓存的数据库持久化方法技术

技术编号:31913717 阅读:20 留言:0更新日期:2022-01-15 12:55
本发明专利技术公开了一种基于缓存的数据库持久化方法,其步骤包括:1)创建数据库操作接口,包括读取数据的接口和操作数据的接口;2)初始化缓存服务器时创建一连接池,并在读取数据的接口中封装对缓存数据的查询操作,在操作数据的接口中封装对缓存数据的相关操作;3)所述数据库操作接口接收用户输入的请求并通过连接池建立缓存连接发送给缓存服务器,缓存服务器根据该请求的内容对数据库进行相应操作,并利用该数据库操作接口所封装的操作对缓存服务器中的缓存数据进行相应操作。本发明专利技术能够同时对数据库和缓存进行操作,大大降低了缓存策略的复杂程度,提高了缓存的正确性和时效性。提高了缓存的正确性和时效性。提高了缓存的正确性和时效性。

【技术实现步骤摘要】
一种基于缓存的数据库持久化方法


[0001]本专利技术涉及软件开发领域,具体为一种数据库持久化方法,可用于缓存数据库的记录。

技术介绍

[0002]关系数据库,是建立在关系数据库模型基础上的数据库,借助于集合代数等概念和方法来处理数据库中的数据,同时也是一个被组织成一组拥有正式描述性的表格,该形式的表格作用的实质是装载着数据项的特殊收集体,这些表格中的数据能以许多不同的方式被存取或重新召集而不需要重新组织数据库表格。
[0003]结构化查询语言(Structured Query Language)简称SQL,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。
[0004]缓存服务器是以内存为主要存储介质的通用服务器。它提供更快的查询速度,但是不负责数据的持久化操作,一般用来临时记录结果数据,加快整个系统的响应速度。
[0005]缓存主要有两个方面的任务:缓存加载、缓存更新。传统缓存一般都是针对具体业务进行定制开发,这种开发方式会带来如下问题:
[0006]增加额外开发工作量。由于是针对业务进行定制开发,那么有缓存需求的业务模块就要根据模块本身的特点进行额外的设计和开发工作。可以根据要缓存数据的业务特性,比如时效性,更新频率,数据量大小等来进行综合考虑。编码时还要考虑各种不同缓存服务器客户端操作接口一致性等具体问题。跟不使用缓存服务器的设计开发相比,这些因素增大了缓存服务器的使用成本。
[0007]缓存有效更新难度大。由于各个缓存模块是业务相关的。那么缓存数据之间就有一定的耦合性。当业务数据A发生变化时,理论上所有含有数据A的缓存数据都应该被更新。但是在实际操作中,很难维护好所有含有数据A的缓存列表,那么当数据A发生变化时,就很难做到数据A的有效更新。

技术实现思路

[0008]为了减少引入缓存服务器带来的额外开发工作,同时为了降低缓存更新逻辑带来的复杂度,本专利技术提供一种基于缓存的数据库持久化方法,有效的降低了在业务系统中使用缓存的难度。
[0009]本专利技术解决其技术问题所采用的技术方案是:
[0010]一种基于缓存的数据库持久化方法,其步骤包括:
[0011]1)创建数据库操作接口,包括读取数据的接口和操作数据的接口;
[0012]2)初始化缓存服务器时创建一连接池,并在读取数据的接口中封装对缓存数据的查询操作,在操作数据的接口中封装对缓存数据的相关操作;
[0013]3)所述数据库操作接口接收用户输入的请求并通过连接池建立缓存连接发送给缓存服务器,换存服务器根据该请求的内容对数据库进行相应操作,并利用该数据库操作
接口所封装的操作对缓存服务器中的缓存数据进行相应操作。
[0014]进一步的,读取数据的接口包括Get接口和List接口,其中,Get接口用于根据要查询的表和记录的主键值来获取数据,List接口用于根据要查询的SQL语句和参数值来获取数据。
[0015]进一步的,操作数据的接口包括用于插入数据的Insert接口、用于更新数据的Update接口和用于删除数据的Delete接口;其中,Insert接口中封装对缓存数据的增加操作、Update接口中封装对缓存数据的写入操作、Delete接口中封装对缓存数据的删除操作。
[0016]进一步的,所述数据库操作接口为Get接口,所述Get接口首先根据用户输入的主键值和物理表名称生成缓存主键KEY并发送给缓存服务器,然后缓存服务器根据缓存主键KEY查询缓存数据,如果有匹配数据则返回匹配数据;否则根据该请求的内容查询数据库,获取查询数据并将其放入缓存服务器中。
[0017]进一步的,所述数据库操作接口为List接口,所述List接口根据用户输入的SQL语句和参数列表来生成缓存主键KEY,然后根据数据库表、SQL语句和随机数生成缓存版本号KEY,根据该缓存版本号KEY,查询对应的缓存服务是否存在,如果存在,则直接从缓存服务器中通过缓存主键KEY查询到相应数据,如果不存在,则从数据库中查询相应数据并生成缓存主键KEY,将相应数据作为VALUE,放到缓存服务器,并根据数据库表、SQL语句和随机数为所缓存数据生成缓存版本号KEY。
[0018]进一步的,所述数据库操作接口为Insert接口;所述Insert接口根据用户输入的数据生成缓存主键KEY,VALUE为所输入数据,放到缓存服务器,并将所输入数据保存到数据库中,再更新缓存服务器中对应数据库表的缓存版本号KEY。
[0019]进一步的,所述数据库操作接口为Update接口;所述Update接口根据用户输入的主键值和物理表名生成方法计算出缓存主键KEY,然后查询并删除缓存服务器中该缓存主键KEY对应的数据;然后根据更新后的数据生成新的缓存主键KEY,VALUE为更新后的数据,放到缓存服务器,并将更新后的数据保存到数据库中,再更新缓存服务器中对应数据库表的缓存版本号KEY。
[0020]进一步的,所述数据库操作接口为Delete接口,所述Delete接口根据用户输入的主键值和物理表名生成方法计算出缓存主键KEY,根据所述缓存主键KEY查询并删除缓存服务器中该缓存主键KEY对应的数据,并删除数据库中对应的数据;然后更新对应数据库表的缓存版本号KEY。
[0021]一种服务器,其特征在于,包括存储器和处理器,所述存储器存储计算机程序,所述计算机程序被配置为由所述处理器执行,所述计算机程序包括用于执行上述方法中各步骤的指令。
[0022]一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现上述方法的步骤。
[0023]第一方面,本专利技术提供了一种操作方式,在使用本专利技术的操作方式时,将同时对数据库和缓存进行操作。使用本专利技术的解决方案去操作数据库时,用户不需要操作缓存,只需要使用标准的SQL语句去操作业务数据库。对于用户来说,缓存层是完全无感的,大大方便了业务的开发。
[0024]第二方面,本专利技术提供了一套标准的操作接口。该接口根据数据库操作的分类,分
为读和写的接口。读接口可以根据查询的内容分为记录查询和列表查询。具体接口见下表所示:
[0025]Get根据要查询的表和记录的主键值来获取数据List根据要查询的SQL语句和参数值来获取数据Insert插入数据Update更新数据Delete删除数据
[0026]通过以上接口,用户在使用SQL操作数据库的同时,本方法在接口内部加入了缓存服务器的使用。缓存服务器在该专利技术初始化的时候创建了连接池,在调用增、删、查等接口的时候,会采用连接池建立缓存连接,把数据放入到缓存服务器,使用连接池后,减少了这些连接所占用的时间。
[0027]第三方面,本专利技术提供了一种接口名称和缓存之间的处理机制,该处理机制包括:
[0028]接口解析:通过对以上接口名称解析,来判断是Get接口单表查询还是List接口列表查询,进而缓存相对应的数据。
[002本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于缓存的数据库持久化方法,其步骤包括:1)创建数据库操作接口,包括读取数据的接口和操作数据的接口;2)初始化缓存服务器时创建一连接池,并在读取数据的接口中封装对缓存数据的查询操作,在操作数据的接口中封装对缓存数据的相关操作;3)所述数据库操作接口接收用户输入的请求并通过连接池建立缓存连接发送给缓存服务器,缓存服务器根据该请求的内容对数据库进行相应操作,并利用该数据库操作接口所封装的操作对缓存服务器中的缓存数据进行相应操作。2.如权利要求1所述的方法,其特征在于,读取数据的接口包括Get接口和List接口,其中,Get接口用于根据要查询的表和记录的主键值来获取数据,List接口用于根据要查询的SQL语句和参数值来获取数据。3.如权利要求1所述的方法,其特征在于,操作数据的接口包括用于插入数据的Insert接口、用于更新数据的Update接口和用于删除数据的Delete接口;其中,Insert接口中封装对缓存数据的增加操作、Update接口中封装对缓存数据的写入操作、Delete接口中封装对缓存数据的删除操作。4.如权利要求2所述的方法,其特征在于,所述数据库操作接口为Get接口,所述Get接口首先根据用户输入的主键值和物理表名称生成缓存主键KEY并发送给缓存服务器,然后缓存服务器根据缓存主键KEY查询缓存数据,如果有匹配数据则返回匹配数据;否则根据该请求的内容查询数据库,获取查询数据并将其放入缓存服务器中。5.如权利要求2所述的方法,其特征在于,所述数据库操作接口为List接口,所述List接口根据用户输入的SQL语句和参数列表来生成缓存主键KEY,然后根据数据库表、SQL语句和随机数生成缓存版本号KEY,根据该缓存版本号KEY,查询对应的缓存服务是否存在,如果存...

【专利技术属性】
技术研发人员:王伟东郭家鑫刘翔王金生贾大玮刘志波王培
申请(专利权)人:中国软件与技术服务股份有限公司
类型:发明
国别省市:

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

1