CN107169047A - 一种实现数据缓存的方法及装置 - Google Patents

一种实现数据缓存的方法及装置 Download PDF

Info

Publication number
CN107169047A
CN107169047A CN201710278320.7A CN201710278320A CN107169047A CN 107169047 A CN107169047 A CN 107169047A CN 201710278320 A CN201710278320 A CN 201710278320A CN 107169047 A CN107169047 A CN 107169047A
Authority
CN
China
Prior art keywords
data
request
cached
persistent storage
inquiry request
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.)
Pending
Application number
CN201710278320.7A
Other languages
English (en)
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.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen 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 Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201710278320.7A priority Critical patent/CN107169047A/zh
Publication of CN107169047A publication Critical patent/CN107169047A/zh
Pending legal-status Critical Current

Links

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/25Integrating or interfacing systems involving database management systems
    • G06F16/252Integrating or interfacing systems involving database management systems between a Database Management System and a front-end application
    • 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

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)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本公开揭示了一种实现数据缓存的方法及装置,该方法应用于数据访问接口程序,数据访问接口程序作为外部实现持久化存储的数据和缓存数据访问的接口,该方法包括:接收外部所发起对数据触发的查询请求;根据查询请求在缓存数据中执行数据查询操作,获得数据不存在的查询结果;根据查询结果,按照查询请求对持久化存储的数据执行数据查询操作,获得请求的数据;对获得的数据进行缓存,形成数据的缓存数据。本公开提供的技术方案通过数据访问接口程序作为外部实现持久化存储的数据和缓存数据访问的接口,从而无需对每个需要缓存数据的外部设备单独开发缓存数据的程序,通过通用的数据访问接口即可实现数据的缓存。

Description

一种实现数据缓存的方法及装置
技术领域
本公开涉及计算机数据处理技术领域,特别涉及一种实现数据缓存的方法及装置。
背景技术
DB数据库是一种关系数据库,可嵌入到智能手机甚至是路由器中。DB数据库中的数据大都会进行缓存,使得对数据的大部分操作都在缓存中进行,因此访问速度非常高效。
为了对DB数据库中持久化存储的数据进行缓存,现有技术一般由需要获取数据的软件APP直接查询缓存系统的缓存数据,确定缓存系统中是否存在需要获取的指定数据。如果缓存系统中不存在需要获取的指定数据,就由该软件APP直接到DB数据库中查询获取该指定数据,然后由该软件APP直接将该指定数据存储至缓存系统中,如图1所示。对于需要缓存数据的软件APP而言,每一个软件APP内均需设置直接访问DB数据库和缓存系统的接口程序,才能实现将DB数据库中的数据缓存至缓存系统。
由软件APP直接访问DB数据库并缓存数据,则针对每一个需要缓存数据的软件APP来说需要独立开发数据访问程序,开发成本较高。
发明内容
为了解决相关技术中存在的针对每一个需要缓存数据的软件APP来说需要独立开发数据访问程序,开发成本较高的问题,本公开提供一种实现数据缓存的方法。
基于此,本公开提供了一种实现数据缓存的方法,所述方法应用于数据访问接口程序,所述数据访问接口程序作为外部实现持久化存储的数据和缓存数据访问的接口,所述方法包括:
接收外部所发起对数据触发的查询请求;
根据所述查询请求在所述缓存数据中执行数据查询操作,获得所述数据不存在的查询结果;
根据所述查询结果,按照所述查询请求对所述持久化存储的数据执行数据查询操作,获得请求的所述数据;
对获得的所述数据进行缓存,形成所述数据的所述缓存数据。
另一方面,本公开还提供了了一种实现数据缓存的装置,所述装置应用于数据访问接口,所述数据访问接口作为外部实现持久化存储的数据和缓存数据访问的接口,所述装置包括:
查询请求接收模块,用于接收外部所发起对数据触发的查询请求;
数据查询模块,用于根据所述查询请求在所述缓存数据中执行数据查询操作,获得所述数据不存在的查询结果;
数据请求模块,用于根据所述查询结果,按照所述查询请求对所述持久化存储的数据执行数据查询操作,获得请求的所述数据;
数据缓存模块,用于对获得的所述数据进行缓存,形成所述数据的所述缓存数据。
本公开的实施例提供的技术方案可以包括以下有益效果:
本公开示例性实施例提供的实现数据缓存的方法及装置,通过数据访问接口程序作为外部实现持久化存储的数据和缓存数据访问的接口,从而无需对每个需要缓存数据的外部设备单独开发缓存数据的程序,通过通用的数据访问接口程序即可实现数据的缓存,从而节省了人力,节约了开发成本。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并于说明书一起用于解释本发明的原理。
图1是现有技术实现数据缓存的方案的原理示意图;
图2是根据一示例性实施例示出的一种实现数据缓存的方法的流程图;
图3是根据一示例性实施例示出的一种实现数据缓存的方法的架构图;
图4是根据一示例性实施例示出的对步骤S250的细节进行描述的流程示意图
图5是根据另一示例性实施例示出的一种实现数据缓存的方法的架构图;
图6是根据一示例性实施例示出的一种实现数据缓存的方法的时序图;
图7是根据另一示例性实施例示出的一种实现数据缓存的方法的流程图;
图8是根据图7对应实施例的步骤S701和步骤S702对数据执行修改操作的时序图;
图9是根据又一示例性实施例示出的一种实现数据缓存的方法的流程图;
图10是根据图9对应实施例的步骤S901和步骤S902对数据执行删除操作的时序图;
图11是根据再一示例性实施例示出的一种实现数据缓存的方法的流程图;
图12为根据图11对应实施例示出的完成步骤S1101-S1102的数据删除操作的时序图;
图13是根据本公开所涉及的实施环境的示意图;
图14是根据一示例性实施例示出的一种实现数据缓存的装置的框图;
图15是根据图14对应示例性实施例示出的数据请求模块的框图。
具体实施方式
这里将详细地对示例性实施例执行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。
图2是根据一示例性实施例示出的一种实现数据缓存的方法的流程图。该实现数据缓存的方法的适用范围和执行主体,例如,可以是服务器,该服务器中配置有数据访问接口程序,该实现数据缓存的方法将用于实现数据访问接口程序,该数据访问接口程序作为外部实现持久化存储的数据和缓存数据访问的接口。
需要说明的是,持久化是针对时间而言的,在一定周期内保持不变就是持久化。持久化存储的数据是指只要不去删除或修改,持久保存在存储设备中的数据。其中,持久化存储的数据包括存储在关系型数据库中,存储在磁盘文件中、XML(可扩展标记语言)数据文件中的数据。举例来说,该持久化存储的数据可以位于数据库中,如DB数据库;该缓存数据可以位于缓存系统中,该数据访问接口程序可以作为外部(如应用程序)访问DB数据库和缓存系统的接口。
如图2所示,本公开一示例性实施例示出的一种实现数据缓存的方法,可以包括以下步骤:
步骤S210:接收外部所发起对数据触发的查询请求;
需要说明的是,此处的外部是相对数据而言的,可以是与服务器连接的智能设备,或者服务器内部需要访问数据的软件APP(应用程序),又或者可以是服务器内部其他需要访问持久化存储的数据和缓存数据的组件,如处理器。本公开实施例将软件APP作为外部进行说明,其他的外部智能设备、服务器组件可以参照外部为软件APP的情况执行。
具体的,服务器内部配置有数据访问接口程序和软件APP,软件APP在要进行数据访问时,会向接口发起查询请求,数据访问接口程序相应接收到软件APP发起的查询请求。其中,该数据可以是KV数据(key-value,键-值对数据)的存储形式进行持久化存储。该查询请求中携带与该数据相对应的key(关键字)标识,以按照此key标识执行相应的数据查询操作。
步骤S230:根据所述查询请求在所述缓存数据中执行数据查询操作,获得所述数据不存在的查询结果;
其中,以实际应用场景举例来说,如图3所示,该软件APP可以位于服务器的应用层,该数据访问程序可以位于服务器的接口层,该缓存数据可以位于服务器存储层配置的缓存系统中。根据需要,也可以将缓存数据直接存储在数据访问接口程序的本地内存中。
具体的,数据访问接口程序接收到软件APP发送的查询请求,由于该查询请求携带了key标识,数据访问接口程序根据key标识在缓存数据中执行数据查询操作,查询与该key标识对应的数据。如果数据访问接口程序获得的查询结果是该缓存数据中不包括与key标识对应的数据,那么执行后续步骤S250、S270进行数据缓存。如果查询结果是该缓存数据中包括与key标识对应的数据,则表示该数据已经完成了缓存。
步骤S250:根据所述查询结果,按照所述查询请求对所述持久化存储的数据执行数据查询操作,获得请求的所述数据;
举例来说,如图3所示,该持久化存储的数据可以位于DB数据库中,而DB数据库可以与缓存系统一并配置在服务器的存储层。具体的,在步骤S230获得了不存在所述数据的查询结果后,数据访问接口程序按照查询请求,根据查询请求中携带的key标识,在DB数据库的持久化存储的数据中执行数据查询操作,获取与查询请求中的key标识对应的数据。
步骤S270:对获得的所述数据进行缓存,形成所述数据的所述缓存数据。
其中,如图3所示,数据访问接口程序从持久化存储的数据中获取到了所查询的数据之后,就对该数据进行缓存,形成缓存数据。具体的,可以将该数据缓存至存储层的缓存系统中,或者数据访问接口程序的本地内存中。进一步的,可以以键值对的形式实现数据缓存。
现有技术中由于每个软件APP直接访问DB数据库和缓存系统,所以对于需要缓存数据的软件APP而言,每个软件APP需要独立开发缓存数据的程序,开发成本较高,浪费人力成本,上述示例性实施例提供的实现数据缓存的方法,不再由软件APP直接访问DB数据库和缓存系统,由通用的数据访问接口程序作为访问DB数据库和缓存系统的接口,由此,每个软件APP无需独立开发,只需通过通用的数据访问接口程序即可实现DB数据库和缓存系统的访问,实现数据的缓存。
本公开示例性实施例提供的实现数据缓存的方法,通过数据访问接口程序作为外部实现持久化存储的数据和缓存数据访问的接口,从而无需对每个需要缓存数据的外部设备单独开发缓存数据的程序,通过通用的数据访问接口程序即可实现数据的缓存,从而节省了人力,节约了开发成本。
图4是根据本公开一示例性实施例示出的对步骤S250根据所述查询结果,按照查询请求对所述持久化存储的数据执行数据查询操作,获得请求的所述数据的细节进行描述的流程示意图,如图4所示,该步骤S250具体可以包括以下步骤:
步骤S401:解析接收的所述查询请求得到数据库查询参数;
需要说明的是,以查询KV数据而言,该查询请求携带了key标识。在缓存数据中不存在与key标识对应的指定数据时,需要从持久化存储的数据中来获取该指定数据。
具体的,以该持久化存储的数据位于DB数据库为例进行说,数据访问接口程序解析查询请求中携带的key标识,得到查询DB数据库所需的参数。
步骤S402:根据解析得到的所述数据库查询参数以及指定数据库查询指令的格式,生成数据库查询指令;
其中,指定数据库查询指令的格式可以为SQL(结构化查询语言)语句格式。具体的,根据解析得到的查询DB数据所需的参数,生成对应的presql(预定义SQL模板,用于参数替换后生成SQL语句)请求,然后根据SQL模板和查询DB数据所需的参数,生成SQL语句,即数据库查询指令,到DB数据库查询数据。
需要解释的是,key标识转换为presql请求的技术。将KV数据缓存和DB数据结合起来的关键是:数据在缓存系统不存在时,根据key标识,可以提取出presql需要的参数,转化为presql请求,然后缓存结果。
具体的,可以规定KV数据key标识的格式,再配置出根据组成key标识的字段为条件的presql,那么在需要时,就可以从key标识中提取presql需要的参数值。只要在KV数据的配置项中,增加对应的presql_id(预定义SQL模板标识)配置,key标识格式等信息,就可以通过配置实现数据缓存了。
步骤S403:在被数据库持久化存储的数据中执行所述数据库查询指令获得请求的所述数据。
需要说明的是,数据库查询指令(SQL语句)是根据key标识生成,因此,根据数据库查询指令在DB数据库中执行数据查询操作时,可以获得与查询请求中的key标识对应的数据,即获得所请求的数据。
在获得了所请求的数据后,将该数据进行缓存,形成缓存数据。当后续接收到同一个key标识的查询请求时,即可从缓存数据中获得该数据,不必再到数据库中进行查询,实现缓存目的,提高了数据访问效率。
图5是根据本公开另一示例性实施例示出的一种实现数据缓存的方法的架构图,其中,如图5所示,软件APP设置在应用层,数据访问接口程序设置在接口层,缓存系统和DB数据库设置在存储层;数据访问接口程序可以包括datasvr程序(提供kv数据访问接口的程序,通过将请求转换为对应缓存系统的命令实现数据存取)和dbproxy程序(代理访问db数据库的服务程序)。持久化存储的数据可以位于DB数据中,缓存数据可以位于缓存系统中,该数据访问接口程序作为外部(如软件APP)访问DB数据和缓存系统的接口。
根据如图5所示的架构图,实现数据缓存的具体流程如下:
1、Datasvr接收软件APP发送的查询请求。
2、Datasvr根据查询请求在缓存系统中查询指定的数据。如果存在该指定的数据,直接向软件APP返回;
3、如果缓存系统中不存在该指定的数据,datasvr生成presql请求发送至dbproxy;
4、Dbproxy接收presql请求在DB数据库中查询并获得该指定的数据;
5、Datasvr将dbproxy查询得到的该指定的数据缓存至缓存系统中,实现数据缓存的目的。
需要说明的是,Datasvr程序提供统一的KV数据访问接口,支持使用多种缓存系统存储KV数据,如开源的redis(key-value存储系统)、memcached(分布式高速缓存系统)。KV数据访问接口是提供访问key-value键值对数据的接口,有GET(查询)、SET(设置)和DEL(删除)接口。
其中,GET接口用于根据key从缓存系统查询数据并返回value(值,即数据)。SET接口用于存储key-value键值对到缓存系统。DEL接口用于从缓存系统删除指定key的键值对数据。
另外需要说明的是,Dbproxy提供预先定义的SQL模板和对应DB数据库信息;其中,为每个SQL模板分配唯一的ID(标识),即称之为presql_ID。Dbproxy接收presql请求后,使用presql_ID指明要访问的SQL模板,同时填写SQL模板需要的参数。Dbproxy根据SQL模板和收到的参数(即解析key标识得到的查询数据库所需的参数),组装出完整的SQL语句,到对应的DB数据库中执行查询操作,并返回结果。
使用presql技术,可以在不用重新启动dbproxy程序的情况下,支持新的DB数据库访问需求。将添加新的DB数据库访问需求转化为参数配置这一运维任务,极大的提升工作效率和提高程序稳定性。
图6是根据本公开一示例性实施例示出的一种实现数据缓存的方法的时序图,参照图6所示,本公开提供的实现数据缓存的方法的详细过程包括以下步骤:
1、软件APP发送查询请求到datasvr,该查询请求携带与所查询的数据对应的key标识。
2、Datasvr到缓存系统查询key标识对应的数据。
3、Datasvr等待和接收缓存系统应答,如果查询到数据,转9直接返回查询结果,否则转4。如果等待超时,也转9。
4、Datasvr从key标识解析出DB数据库查询参数,组合presql请求,发送请求到dbproxy程序。
5、Dbproxy根据presql模版和DB数据库查询参数,生成sql语句,到对应DB数据库查询,并返回结果。
6、Datasvr等待和接收dbproxy的查询结果,如果查询到数据,转7,否者转9。如果等待超时,也转9。
7、Datasvr存储key-value数据到缓存系统,key为查询请求中的key标识,value为查询DB数据库获得的数据。
8、Datasvr等待和接收缓存系统设置key-value应答,不管是否接收到应答或者应答超时,不影响给软件APP返回查询的数据。
9、Datasvr向软件APP返回数据查询结果。如,查询失败或者返回查询到的数据。
进一步的,为了保证某一数据在缓存数据和持久化存储的数据中的一致性,本公开还提供了另一种实现数据缓存的方法,该方法在上述任一示例性实施例的基础上,如图7所示,还包括以下步骤:
步骤S701:接收触发进行数据修改的请求;
举例来说,在步骤S210-S270完成数据缓存后,数据访问接口程序接收软件APP发送的触发进行数据修改的请求;其中,该请求携带key标识。
步骤S702:根据所述触发进行数据修改的请求,向所述持久化存储的数据执行数据修改操作,相应对所述数据的缓存数据执行数据删除操作。
具体的,数据访问接口程序可以根据key标识,在持久化存储的数据中对与key标识对应的数据执行修改操作。由于持久化存储的数据中与key标识对应的数据发生了修改,为了保证该数据在缓存数据和持久化存储的数据中的一致性,删除缓存数据中与key标识对应的数据。之后根据需要,可以继续执行步骤S210-S270,实现修改后数据的缓存。
图8是根据步骤S701和步骤S702对数据执行修改操作的时序图,为了更加清楚地理解本示例性实施例提供的技术方案,该示例性实施例以持久化存储的数据位于DB数据库、缓存数据位于缓存系统为例进行说明,该持久化存储的数据位于其他数据库中的情形,或该缓存数据位于其他存储单元中的情形可以参照该示例性实施例进行。此外,外部对数据的访问,以软件APP进行数据访问为例进行说明。
如图8所示,对数据执行修改操作包括以下步骤:
1、软件APP发送设置KV数据请求到datasvr;需要说明的是,该设置KV数据请求即为上述示例性实施例中触发进行数据修改的请求。该设置KV数据请求携带key标识。
2、Datasvr通过key标识解析出设置数据到DB数据库的presql需要的参数,生成presql请求发送至Dbproxy。
3、Dbproxy根据presql请求确定设置数据的SQL模版和传入的参数,生成SQL语句,到对应DB数据库上执行设置操作。这个presql可以支持新数据的插入和已有数据的部分字段修改。
4、Dbprox向Datasvry返回执行设置操作的结果。
5、如果修改DB数据库的数据成功,Datasvry从缓存系统删除与key标识对应的数据。
6、Datasvr向软件APP返回修改数据的结果。
为了保证某一数据在缓存数据和持久化存储的数据中的一致性,本公开还提供了另一种实现数据缓存的方法,该方法在上述任一示例性实施例的基础上,如图9所示,还包括以下步骤:
步骤S901:接收触发进行数据删除的请求;
举例来说,在步骤S210-S270完成数据缓存后,数据访问接口程序接收软件APP发送的触发进行数据删除的请求;其中,该请求携带key标识。
步骤S902:根据所述触发进行数据删除的请求,向所述持久化存储的数据执行数据删除操作,相应对所述数据的缓存数据执行数据删除操作。
具体的,数据访问接口程序可以根据key标识,在持久化存储的数据中对与key标识对应的数据执行删除操作。由于持久化存储的数据中与key标识对应的数据发生了删除,因此可以删除缓存数据中与key标识对应的数据。
以实际应用场景举例来说,执行上述数据删除操作的时序图如图10所示,具体流程如下:
1、软件APP发送删除kV数据请求到datasvr;具体的,该删除kV数据请求可以包括key标识。
2、Datasvr根据key标识解析出删除数据的presql需要的参数,发送presql请求到dbproxy。
3、Dbproxy根据presql请求,确定删除数据的sql模版和传入参数,生成SQL语言,到对应DB数据库将与key标识对应的数据执行删除操作。
4、Dbproxy返回删除数据结果到datasvr。
5、如果删除数据成功,Datasvr从缓存系统删除对应key标识的数据。
6、Datasvr向软件APP返回删除kv数据结果。
此外,当外部直接对持久化存储的数据进行了修改或删除操作,未通过数据访问接口程序对持久化存储的数据执行修改或删除操作时,如图11所示,本公开另一示例性实施例提供的实现数据缓存的方法,在上述步骤S210-S270的基础上,还包括以下步骤:
步骤S1101:接收进行持久化存储的所述数据已发生变更的通知;
具体的,在软件APP直接对持久化存储的数据发生修改或删除后,数据访问接口程序接收软件APP发送的指定数据已发生变更的通知;其中,该通知可以携带该指定数据的key标识。其中,进行持久化存储的所述数据可以位于DB数据库中。
步骤S1102:根据所述通知对所述数据的缓存数据执行数据删除操作。
具体的,数据访问接口程序接收到该通知后,可以根据该key标识,将缓存数据中与该key标识对应的数据执行数据删除操作。其中,该缓存数据可以位于缓存系统中。
以实际场景举例来说,图12为本公开一示例性实施例示出的完成上述步骤S1101-S1102的数据删除操作的时序图,如图12所示,完成上述步骤S1101-S1102的数据删除操作的详细过程包括以下步骤:
1、软件APP直接修改或者删除DB数据库中的指定数据;
2、软件APP向datasvr发送该指定数据已发生变更的通知,通知datasvr DB数据库的数据变更。其中,该通知中携带了该指定数据对应的key标识;
3、Datasvr根据该通知,删除缓存系统中与该key标识对应的缓存数据。
参见图13,图13是本公开示例性实施例提供的一种服务器结构示意图。该服务器1300可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(central processing units,CPU)1322(例如,一个或一个以上处理器)和存储器1332,一个或一个以上存储应用程序1342或数据1344的存储介质1330(例如一个或一个以上海量存储设备)。其中,存储器1332和存储介质1330可以是短暂存储或持久存储。存储在存储介质1330的程序可以包括一个或一个以上模块(图示未示出),每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器1322可以设置为与存储介质1330通信,在服务器1300上执行存储介质1330中的一系列指令操作。服务器1300还可以包括一个或一个以上电源1326,一个或一个以上有线或无线网络接口1350,一个或一个以上输入输出接口1358,和/或,一个或一个以上操作系统1341,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。
上述图2对应实施例中的外部可以是应用程序1342,持久化存储的数据和缓存数据可以是数据1344。数据访问接口程序可以存储在存储器1332中,中央处理器1322可以调用存储器1332中的数据访问接口程序,该数据访问接口程序可以采用本公开示例性实施例提供的方法实现数据的缓存。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等
下述为本公开装置实施例,可以用于执行本公开上述服务器1300执行的实现数据缓存的方法实施例。对于本公开装置实施例中未披露的细节,请参照本公开实现数据缓存的方法实施例。
图14是根据一示例性实施例示出的一种实现数据缓存的装置的框图,该实现数据缓存的装置可以用于13所示实施环境的服务器1300中,执行图2-12任一所示的实现数据缓存的方法的全部或者部分步骤。该实现数据缓存的装置可以是数据访问接口,该数据访问接口作为外部实现持久化存储的数据和缓存数据访问的接口,如图14所示,该实现数据缓存的装置包括但不限于:查询请求接收模块1410、数据查询模块1430、数据请求模块1450以及数据缓存模块1470。
其中,请求接收模块1410,用于接收外部所发起对数据触发的查询请求;
数据查询模块1430,用于根据所述查询请求在所述缓存数据中执行数据查询操作,获得所述数据不存在的查询结果;
数据请求模块1450,用于根据所述查询结果,按照所述查询请求对所述持久化存储的数据执行数据查询操作,获得请求的所述数据;
数据缓存模块1470,用于对获得的所述数据进行缓存,形成所述数据的所述缓存数据。
上述装置中各个模块的功能和作用的实现过程具体详见上述实现数据缓存的方法的实施例中对应步骤的实现过程,在此不再赘述。
请求接收模块1410比如可以是图13的某一个物理结构中央处理器1322。
数据查询模块1430、数据请求模块1450以及数据缓存模块1470也可以是功能模块,用于执行上述实现数据缓存的方法中的对应步骤。可以理解,这些模块可以通过硬件、软件、或二者结合来实现。当以硬件方式实现时,这些模块可以实施为一个或多个硬件模块,例如一个或多个专用集成电路。当以软件方式实现时,这些模块可以实施为在一个或多个处理器上执行的一个或多个计算机程序,例如图13的中央处理器1322所执行的存储在存储器1332中的程序。
图15为本公开一示例性实施例示出的对图14对应实施例中的数据请求模块1450的细节进行描述的框图,如图15所示,该数据请求模块1450包括但不限于:参数解析单元1451、指令生成单元1452以及数据获取单元1453;
其中,参数解析单元1451,用于解析接收的所述查询请求得到数据库查询参数;
指令生成单元1452,用于根据解析得到的所述数据库查询参数以及指定数据库查询指令的格式,生成数据库查询指令;
数据获取单元1453,用于在被数据库持久化存储的数据中执行所述数据库查询指令获得请求的所述数据。
可选的,在上述任一示例性实施例提供的实现数据缓存的装置的基础上,该实现数据缓存的装置还可以包括但不限于:
修改请求接收模块,用于接收触发进行数据修改的请求;
数据修改模块,用于根据所述触发进行数据修改的请求,向所述持久化存储的数据执行数据修改操作,相应对所述数据的缓存数据执行数据删除操作。
进一步的,在该实现数据缓存的装置还可以包括但不限于:
删除请求接收模块,用于接收触发进行数据删除的请求;
第一数据删除模块,用于根据所述触发进行数据删除的请求,向所述持久化存储的数据执行数据删除操作,相应对所述数据的缓存数据执行数据删除操作。
此外,在其他实施例中,所述实现数据缓存的装置还可以包括但不限于:
变更通知接收模块,用于接收进行持久化存储的所述数据已发生变更的通知;
第二数据删除模块,用于根据所述通知对所述数据的缓存数据执行数据删除操作。
可选的,本公开了一种实现数据缓存的装置,该实现数据缓存的装置可以用于图13所示实施环境的服务器,执行图2-12任一所示的实现数据缓存的方法的全部或者部分步骤。所述装置包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器用于执行以下操作:
接收外部所发起对数据触发的查询请求;
根据所述查询请求在所述缓存数据中执行数据查询操作,获得所述数据不存在的查询结果;
根据所述查询结果,按照所述查询请求对所述持久化存储的数据执行数据查询操作,获得请求的所述数据;
对获得的所述数据进行缓存,形成所述数据的所述缓存数据。
该实施例中的装置的处理器执行操作的具体方式已经在有关该实现数据缓存的方法的实施例中执行了详细描述,此处将不做详细阐述说明。
应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围执行各种修改和改变。本发明的范围仅由所附的权利要求来限制。

Claims (10)

1.一种实现数据缓存的方法,其特征在于,所述方法应用于数据访问接口程序,所述数据访问接口程序作为外部实现持久化存储的数据和缓存数据访问的接口,所述方法包括:
接收外部所发起对数据触发的查询请求;
根据所述查询请求在所述缓存数据中执行数据查询操作,获得所述数据不存在的查询结果;
根据所述查询结果,按照所述查询请求对所述持久化存储的数据执行数据查询操作,获得请求的所述数据;
对获得的所述数据进行缓存,形成所述数据的所述缓存数据。
2.根据权利要求1所述的方法,其特征在于,所述根据所述查询结果,按照查询请求对所述持久化存储的数据执行数据查询操作,获得请求的所述数据,具体包括:
解析接收的所述查询请求得到数据库查询参数;
根据解析得到的所述数据库查询参数以及指定数据库查询指令的格式,生成数据库查询指令;
在被数据库持久化存储的数据中执行所述数据库查询指令获得请求的所述数据。
3.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
接收触发进行数据修改的请求;
根据所述触发进行数据修改的请求,向所述持久化存储的数据执行数据修改操作,相应对所述数据的缓存数据执行数据删除操作。
4.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
接收触发进行数据删除的请求;
根据所述触发进行数据删除的请求,向所述持久化存储的数据执行数据删除操作,相应对所述数据的缓存数据执行数据删除操作。
5.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
接收进行持久化存储的所述数据已发生变更的通知;
根据所述通知对所述数据的缓存数据执行数据删除操作。
6.一种实现数据缓存的装置,其特征在于,所述装置是数据访问接口,所述数据访问接口作为外部实现持久化存储的数据和缓存数据访问的接口,所述装置包括:
查询请求接收模块,用于接收外部所发起对数据触发的查询请求;
数据查询模块,用于根据所述查询请求在所述缓存数据中执行数据查询操作,获得所述数据不存在的查询结果;
数据请求模块,用于根据所述查询结果,按照所述查询请求对所述持久化存储的数据执行数据查询操作,获得请求的所述数据;
数据缓存模块,用于对获得的所述数据进行缓存,形成所述数据的所述缓存数据。
7.根据权利要求6所述的装置,其特征在于,所述数据请求模块具体包括:
参数解析单元,用于解析接收的所述查询请求得到数据库查询参数;
指令生成单元,用于根据解析得到的所述数据库查询参数以及指定数据库查询指令的格式,生成数据库查询指令;
数据获取单元,用于在被数据库持久化存储的数据中执行所述数据库查询指令获得请求的所述数据。
8.根据权利要求6或7所述的装置,其特征在于,所述装置还包括:
修改请求接收模块,用于接收触发进行数据修改的请求;
数据修改模块,用于根据所述触发进行数据修改的请求,向所述持久化存储的数据执行数据修改操作,相应对所述数据的缓存数据执行数据删除操作。
9.根据权利要求6或7所述的装置,其特征在于,所述装置还包括:
删除请求接收模块,用于接收触发进行数据删除的请求;
第一数据删除模块,用于根据所述触发进行数据删除的请求,向所述持久化存储的数据执行数据删除操作,相应对所述数据的缓存数据执行数据删除操作。
10.根据权利要求6或7所述的装置,其特征在于,所述装置还包括:
变更通知接收模块,用于接收进行持久化存储的所述数据已发生变更的通知;
第二数据删除模块,用于根据所述通知对所述数据的缓存数据执行数据删除操作。
CN201710278320.7A 2017-04-25 2017-04-25 一种实现数据缓存的方法及装置 Pending CN107169047A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710278320.7A CN107169047A (zh) 2017-04-25 2017-04-25 一种实现数据缓存的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710278320.7A CN107169047A (zh) 2017-04-25 2017-04-25 一种实现数据缓存的方法及装置

Publications (1)

Publication Number Publication Date
CN107169047A true CN107169047A (zh) 2017-09-15

Family

ID=59813734

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710278320.7A Pending CN107169047A (zh) 2017-04-25 2017-04-25 一种实现数据缓存的方法及装置

Country Status (1)

Country Link
CN (1) CN107169047A (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110851136A (zh) * 2019-09-18 2020-02-28 平安科技(深圳)有限公司 数据获取方法、装置、电子设备及存储介质
CN110928904A (zh) * 2019-10-31 2020-03-27 北京浪潮数据技术有限公司 一种数据查询方法、装置及相关组件
CN113114642A (zh) * 2021-03-30 2021-07-13 广州宸祺出行科技有限公司 一种接口整合的驾驶员身份认证方法及装置
CN113407565A (zh) * 2021-06-29 2021-09-17 中国民生银行股份有限公司 跨库数据查询方法、装置和设备

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7359890B1 (en) * 2002-05-08 2008-04-15 Oracle International Corporation System load based adaptive prefetch
CN101196926A (zh) * 2007-12-29 2008-06-11 中国建设银行股份有限公司 一种数据库访问平台及其访问方法
CN101576918A (zh) * 2009-06-19 2009-11-11 用友软件股份有限公司 具备负载均衡功能的数据缓存系统
CN102193922A (zh) * 2010-03-04 2011-09-21 杭州华三通信技术有限公司 一种对数据库进行访问的方法和装置
CN104573128A (zh) * 2014-10-28 2015-04-29 北京国双科技有限公司 一种业务数据的处理方法、装置及服务器

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7359890B1 (en) * 2002-05-08 2008-04-15 Oracle International Corporation System load based adaptive prefetch
CN101196926A (zh) * 2007-12-29 2008-06-11 中国建设银行股份有限公司 一种数据库访问平台及其访问方法
CN101576918A (zh) * 2009-06-19 2009-11-11 用友软件股份有限公司 具备负载均衡功能的数据缓存系统
CN102193922A (zh) * 2010-03-04 2011-09-21 杭州华三通信技术有限公司 一种对数据库进行访问的方法和装置
CN104573128A (zh) * 2014-10-28 2015-04-29 北京国双科技有限公司 一种业务数据的处理方法、装置及服务器

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
洪承煜 等: "数据库统一接口模型设计与实现", 《网络新媒体技术》 *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110851136A (zh) * 2019-09-18 2020-02-28 平安科技(深圳)有限公司 数据获取方法、装置、电子设备及存储介质
CN110928904A (zh) * 2019-10-31 2020-03-27 北京浪潮数据技术有限公司 一种数据查询方法、装置及相关组件
CN113114642A (zh) * 2021-03-30 2021-07-13 广州宸祺出行科技有限公司 一种接口整合的驾驶员身份认证方法及装置
CN113407565A (zh) * 2021-06-29 2021-09-17 中国民生银行股份有限公司 跨库数据查询方法、装置和设备
CN113407565B (zh) * 2021-06-29 2024-01-30 中国民生银行股份有限公司 跨库数据查询方法、装置和设备

Similar Documents

Publication Publication Date Title
CN109582660B (zh) 数据血缘分析方法、装置、设备、系统及可读存储介质
CN109144994B (zh) 索引更新方法、系统及相关装置
Huang et al. Research on architecture and query performance based on distributed graph database Neo4j
CN111177178B (zh) 一种数据处理方法及相关设备
WO2016011883A1 (zh) 数据资源的获取方法、装置和系统
CN108664516A (zh) 查询优化方法及相关装置
CN107169047A (zh) 一种实现数据缓存的方法及装置
CN108427631A (zh) 一种应用测试系统、方法、电子设备和可读存储介质
CN111177161B (zh) 数据处理方法、装置、计算设备和存储介质
CN108875091B (zh) 一种统一管理的分布式网络爬虫系统
CN104778270A (zh) 一种用于多文件的存储方法
WO2018035799A1 (zh) 数据查询方法、应用和数据库服务器、中间件及系统
JP6085897B2 (ja) ウェブアプリケーションにデータベースの変更内容を取得させるための方法及びシステム
CN104423982B (zh) 请求的处理方法和处理设备
CN111258978A (zh) 一种数据存储的方法
CN108268468B (zh) 一种大数据的分析方法及系统
CN107402926A (zh) 一种查询方法以及查询设备
CN114356921A (zh) 数据处理方法、装置、服务器及存储介质
CN111914013B (zh) 基于pandas库与InfluxDB数据库的数据管理方法、系统、终端及介质
CN116108057B (zh) 一种分布式数据库访问方法、装置、设备及存储介质
CN111190929A (zh) 数据存储查询方法、装置、电子设备及存储介质
CN104461929B (zh) 基于拦截器的分布式数据缓存方法
CN108509453B (zh) 一种信息处理方法及装置
CN103377292B (zh) 数据库结果集缓存方法及设备
US11055223B2 (en) Efficient cache warm up based on user requests

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
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20170915