一种数据查询方法和装置

文档序号:1937338 发布日期:2021-12-07 浏览:12次 >En<

阅读说明:本技术 一种数据查询方法和装置 (Data query method and device ) 是由 李晓卓 于 2020-08-18 设计创作,主要内容包括:本发明公开了一种数据查询方法和装置,涉及计算机技术领域。该方法的一具体实施方式包括:接收数据查询请求,根据数据查询请求中包括的数据编号,判断缓存区的缓存对象中是否存在与数据编号对应的目标数据;若不存在,则从数据库中查询与数据编号对应的目标数据;从缓存对象池中获取缓存对象,将目标数据置于缓存对象中,其中,缓存对象具有用于存储数据的地址空间;将包括目标数据的缓存对象置于缓存区中,并将目标数据发送至数据查询请求的发送方。该实施方式降低了数据缓存成本和系统开销,提升了数据查询速度。(The invention discloses a data query method and a data query device, and relates to the technical field of computers. One embodiment of the method comprises: receiving a data query request, and judging whether target data corresponding to a data number exists in a cache object of a cache region according to the data number included in the data query request; if the target data does not exist, inquiring target data corresponding to the data number from the database; obtaining a cache object from a cache object pool, and placing target data in the cache object, wherein the cache object has an address space for storing data; and placing the cache object comprising the target data in a cache region, and sending the target data to a sender of the data query request. The implementation mode reduces the data caching cost and the system overhead and improves the data query speed.)

一种数据查询方法和装置

技术领域

本发明涉及计算机技术领域,尤其涉及一种数据查询方法和装置。

背景技术

随着数据量的增加、用户对响应速度的要求提升,非关系型数据库(如键值key-value存储数据库)的应用场景也在逐步增加。非关系型数据库通过构建缓存区来缓存热点数据(查询频率高的数据),通过对缓存区内数据的更新使得缓存区的存储空间用于缓存热点数据,以达到快速查询的效果。

在实现本发明过程中,发明人发现现有技术中至少存在如下问题:

现有的缓存区内数据的更新过程中,对于需要删除的数据,直接释放该数据对应的缓存对象;再针对新增数据从数据库系统中申请并创建新的缓存对象,增加了数据缓存成本和系统开销,降低了数据查询速度。

发明内容

有鉴于此,本发明实施例提供一种数据查询方法和装置,通过构建缓存对象池,实现缓存对象的重复使用,从而降低了数据缓存成本和系统开销,提升了数据查询速度。

为实现上述目的,根据本发明实施例的第一方面,提供了一种数据查询方法,包括:

接收数据查询请求,根据数据查询请求中包括的数据编号,判断缓存区的缓存对象中是否存在与数据编号对应的目标数据;

若不存在,则从数据库中查询与数据编号对应的目标数据;

从缓存对象池中获取缓存对象,将目标数据置于缓存对象中,其中,缓存对象具有用于存储数据的地址空间;

将包括目标数据的缓存对象置于缓存区中,并将目标数据发送至数据查询请求的发送方。

进一步地,在从缓存对象池中获取缓存对象的步骤之前,还包括:判断缓存对象池中是否存在缓存对象,若不存在,则根据置换算法对缓存区的缓存对象中的数据进行删除处理,将经过删除处理后得到的缓存对象置于缓存对象池中。

进一步地,还包括:设置更新周期,根据更新周期和置换算法对缓存区内的数据进行更新。

进一步地,置换算法包括下列算法中的至少一种:最近最久未使用置换算法、最少使用置换算法、以及先进先出置换算法。

进一步地,还包括:缓存对象的总存储空间与缓存区的可用存储空间的大小一致。

进一步地,在缓存区的缓存对象中存在与数据编号对应的目标数据的情况下,还包括:将目标数据发送至数据查询请求的发送方,并对目标数据的查询状态进行更新。

根据本发明实施例的第二方面,提供了一种数据查询装置,包括:

缓存区查询模块,用于接收数据查询请求,根据数据查询请求中包括的数据编号,判断缓存区的缓存对象中是否存在与数据编号对应的目标数据;

数据库查询模块,在缓存区的缓存对象中不存在与数据编号对应的目标数据的情况下,用于从数据库中查询与数据编号对应的目标数据;

缓存对象获取模块,用于从缓存对象池中获取缓存对象,将目标数据置于缓存对象中,其中,缓存对象具有用于存储数据的地址空间;

数据发送模块,用于将包括目标数据的缓存对象置于缓存区中,并将目标数据发送至数据查询请求的发送方。

进一步地,还包括:判断模块,在从缓存对象池中获取缓存对象的步骤之前,判断模块用于:判断缓存对象池中是否存在缓存对象,若不存在,则根据置换算法对缓存区的缓存对象中的数据进行删除处理,将经过删除处理后得到的缓存对象置于缓存对象池中。

根据本发明实施例的第三方面,提供了一种电子设备,包括:

一个或多个处理器;

存储装置,用于存储一个或多个程序,

当一个或多个程序被一个或多个处理器执行,使得一个或多个处理器实现如上述任一种数据查询方法。

根据本发明实施例的第四方面,提供了一种计算机可读介质,其上存储有计算机程序,该程序被处理器执行时实现如上述任一种数据查询方法。

上述发明中的一个实施例具有如下优点或有益效果:因为采用接收数据查询请求,根据数据查询请求中包括的数据编号,判断缓存区的缓存对象中是否存在与数据编号对应的目标数据;若不存在,则从数据库中查询与数据编号对应的目标数据;从缓存对象池中获取缓存对象,将目标数据置于缓存对象中,其中,缓存对象具有用于存储数据的地址空间;将包括目标数据的缓存对象置于缓存区中,并将目标数据发送至数据查询请求的发送方的技术手段,所以克服了现有的缓存区内数据的更新过程中,由于对缓存对象的不断释放和创建,导致增加数据缓存成本和系统开销,降低数据查询速度的技术问题,进而达到降低数据缓存成本和系统开销,提升数据查询速度的技术效果。

上述的非惯用的可选方式所具有的进一步效果将在下文中结合

具体实施方式

包括:接收数据查询请求,根据数据查询请求中包括的数据编号,判断缓存区的缓存对象中是否存在与数据编号对应的目标数据;若不存在,则从数据库中查询与数据编号对应的目标数据;从缓存对象池中获取缓存对象,将目标数据置于缓存对象中,其中,缓存对象具有用于存储数据的地址空间;将包括目标数据的缓存对象置于缓存区中,并将目标数据发送至数据查询请求的发送方。该实施方式降低了数据缓存成本和系统开销,提升了数据查询速度。 ">

为遏制恶意抓取行为,请关注公众号获取访问口令


二维码

微信扫二维码关注公众号,发送“口令”获取

提交

提示:只需正确输入一次口令,该弹窗便不再弹出!

CN113760967A - 一种数据查询方法和装置 - Google Patents

一种数据查询方法和装置 Download PDF

Info

Publication number
CN113760967A
CN113760967A CN202010832938.5A CN202010832938A CN113760967A CN 113760967 A CN113760967 A CN 113760967A CN 202010832938 A CN202010832938 A CN 202010832938A CN 113760967 A CN113760967 A CN 113760967A
Authority
CN
China
Prior art keywords
data
cache
cache object
target data
query
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
CN202010832938.5A
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.)
Beijing Jingdong Century Trading Co Ltd
Beijing Wodong Tianjun Information Technology Co Ltd
Original Assignee
Beijing Jingdong Century Trading Co Ltd
Beijing Wodong Tianjun Information Technology 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 Beijing Jingdong Century Trading Co Ltd, Beijing Wodong Tianjun Information Technology Co Ltd filed Critical Beijing Jingdong Century Trading Co Ltd
Priority to CN202010832938.5A priority Critical patent/CN113760967A/zh
Publication of CN113760967A publication Critical patent/CN113760967A/zh
Pending legal-status Critical Current

Links

  • 230000000875 corresponding Effects 0.000 claims abstract description 63
  • 238000004590 computer program Methods 0.000 claims description 9
  • 238000010586 diagram Methods 0.000 description 15
  • 238000000034 method Methods 0.000 description 11
  • 230000000694 effects Effects 0.000 description 10
  • 230000003287 optical Effects 0.000 description 4
  • 230000004048 modification Effects 0.000 description 3
  • 238000006011 modification reaction Methods 0.000 description 3
  • 239000000835 fiber Substances 0.000 description 2
  • 230000000644 propagated Effects 0.000 description 2
  • 239000004065 semiconductor Substances 0.000 description 2
  • 210000003666 Nerve Fibers, Myelinated Anatomy 0.000 description 1
  • 239000000969 carrier Substances 0.000 description 1
  • 238000011156 evaluation Methods 0.000 description 1
  • 239000003365 glass fiber Substances 0.000 description 1
  • 239000004973 liquid crystal related substance Substances 0.000 description 1
  • 230000004044 response Effects 0.000 description 1
  • 238000006467 substitution reaction Methods 0.000 description 1

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING; 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/2453Query optimisation
    • G06F16/24534Query rewriting; Transformation
    • G06F16/24539Query rewriting; Transformation using cached or materialised query results
    • GPHYSICS
    • G06COMPUTING; CALCULATING; 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

Abstract

本发明公开了一种数据查询方法和装置,涉及计算机技术领域。该方法的一具体实施方式包括:接收数据查询请求,根据数据查询请求中包括的数据编号,判断缓存区的缓存对象中是否存在与数据编号对应的目标数据;若不存在,则从数据库中查询与数据编号对应的目标数据;从缓存对象池中获取缓存对象,将目标数据置于缓存对象中,其中,缓存对象具有用于存储数据的地址空间;将包括目标数据的缓存对象置于缓存区中,并将目标数据发送至数据查询请求的发送方。该实施方式降低了数据缓存成本和系统开销,提升了数据查询速度。

Description

一种数据查询方法和装置

技术领域

本发明涉及计算机技术领域,尤其涉及一种数据查询方法和装置。

背景技术

随着数据量的增加、用户对响应速度的要求提升,非关系型数据库(如键值key-value存储数据库)的应用场景也在逐步增加。非关系型数据库通过构建缓存区来缓存热点数据(查询频率高的数据),通过对缓存区内数据的更新使得缓存区的存储空间用于缓存热点数据,以达到快速查询的效果。

在实现本发明过程中,发明人发现现有技术中至少存在如下问题:

现有的缓存区内数据的更新过程中,对于需要删除的数据,直接释放该数据对应的缓存对象;再针对新增数据从数据库系统中申请并创建新的缓存对象,增加了数据缓存成本和系统开销,降低了数据查询速度。

发明内容

有鉴于此,本发明实施例提供一种数据查询方法和装置,通过构建缓存对象池,实现缓存对象的重复使用,从而降低了数据缓存成本和系统开销,提升了数据查询速度。

为实现上述目的,根据本发明实施例的第一方面,提供了一种数据查询方法,包括:

接收数据查询请求,根据数据查询请求中包括的数据编号,判断缓存区的缓存对象中是否存在与数据编号对应的目标数据;

若不存在,则从数据库中查询与数据编号对应的目标数据;

从缓存对象池中获取缓存对象,将目标数据置于缓存对象中,其中,缓存对象具有用于存储数据的地址空间;

将包括目标数据的缓存对象置于缓存区中,并将目标数据发送至数据查询请求的发送方。

进一步地,在从缓存对象池中获取缓存对象的步骤之前,还包括:判断缓存对象池中是否存在缓存对象,若不存在,则根据置换算法对缓存区的缓存对象中的数据进行删除处理,将经过删除处理后得到的缓存对象置于缓存对象池中。

进一步地,还包括:设置更新周期,根据更新周期和置换算法对缓存区内的数据进行更新。

进一步地,置换算法包括下列算法中的至少一种:最近最久未使用置换算法、最少使用置换算法、以及先进先出置换算法。

进一步地,还包括:缓存对象的总存储空间与缓存区的可用存储空间的大小一致。

进一步地,在缓存区的缓存对象中存在与数据编号对应的目标数据的情况下,还包括:将目标数据发送至数据查询请求的发送方,并对目标数据的查询状态进行更新。

根据本发明实施例的第二方面,提供了一种数据查询装置,包括:

缓存区查询模块,用于接收数据查询请求,根据数据查询请求中包括的数据编号,判断缓存区的缓存对象中是否存在与数据编号对应的目标数据;

数据库查询模块,在缓存区的缓存对象中不存在与数据编号对应的目标数据的情况下,用于从数据库中查询与数据编号对应的目标数据;

缓存对象获取模块,用于从缓存对象池中获取缓存对象,将目标数据置于缓存对象中,其中,缓存对象具有用于存储数据的地址空间;

数据发送模块,用于将包括目标数据的缓存对象置于缓存区中,并将目标数据发送至数据查询请求的发送方。

进一步地,还包括:判断模块,在从缓存对象池中获取缓存对象的步骤之前,判断模块用于:判断缓存对象池中是否存在缓存对象,若不存在,则根据置换算法对缓存区的缓存对象中的数据进行删除处理,将经过删除处理后得到的缓存对象置于缓存对象池中。

根据本发明实施例的第三方面,提供了一种电子设备,包括:

一个或多个处理器;

存储装置,用于存储一个或多个程序,

当一个或多个程序被一个或多个处理器执行,使得一个或多个处理器实现如上述任一种数据查询方法。

根据本发明实施例的第四方面,提供了一种计算机可读介质,其上存储有计算机程序,该程序被处理器执行时实现如上述任一种数据查询方法。

上述发明中的一个实施例具有如下优点或有益效果:因为采用接收数据查询请求,根据数据查询请求中包括的数据编号,判断缓存区的缓存对象中是否存在与数据编号对应的目标数据;若不存在,则从数据库中查询与数据编号对应的目标数据;从缓存对象池中获取缓存对象,将目标数据置于缓存对象中,其中,缓存对象具有用于存储数据的地址空间;将包括目标数据的缓存对象置于缓存区中,并将目标数据发送至数据查询请求的发送方的技术手段,所以克服了现有的缓存区内数据的更新过程中,由于对缓存对象的不断释放和创建,导致增加数据缓存成本和系统开销,降低数据查询速度的技术问题,进而达到降低数据缓存成本和系统开销,提升数据查询速度的技术效果。

上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。

附图说明

附图用于更好地理解本发明,不构成对本发明的不当限定。其中:

图1是根据本发明第一实施例提供的数据查询方法的主要流程的示意图;

图2是根据本发明第二实施例提供的数据查询方法的主要流程的示意图;

图3是根据本发明实施例提供的数据查询装置的主要模块的示意图;

图4是图3所述装置对应的数据查询系统的主要框架的示意图;

图5是本发明实施例可以应用于其中的示例性系统架构图;

图6是适于用来实现本发明实施例的终端设备或服务器的计算机系统的结构示意图。

具体实施方式

以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。

图1是根据本发明第一实施例提供的数据查询方法的主要流程的示意图;如图1所示,本发明实施例提供的数据查询方法主要包括:

步骤S101,接收数据查询请求,根据数据查询请求中包括的数据编号,判断缓存区的缓存对象中是否存在与数据编号对应的目标数据。

具体地,本发明实施例的数据查询涉及到的主要是非关系型数据库,其中的缓存区尤其适用于数据查询、短连接、新闻内容以及商品内容查询等场景。数据编号与数据详情(目标数据)呈一一对应的关系,如数据编号为key,则其对应的目标数据为value。对于接收到的数据查询请求,首先从缓存区中查询是否有与该数据编号对应的目标数据,有利于提升数据查询效率。

缓存对象是缓存区向数据库系统申请并创建的存储空间之一,用于在缓存区内存储新增数据。

步骤S102,若不存在,则从数据库中查询与数据编号对应的目标数据。

在缓存区内未查询到与数据编号对应的目标数据的情况下,再根据该数据编号从数据库中进行查询。数据库中存储着全量数据,缓存区内的缓存数据仅为数据库内的热点数据(即查询频率高的数据)。

具体地,根据本发明实施例,在从数据库中查询与数据编号对应的目标数据的步骤之后,还包括:确定缓存对象池中存在缓存对象。

根据本发明实施例,在缓存区之外,还构建一个包括多个缓存对象的缓存对象池,缓存对象具有用于存储数据的地址空间。需要说明的是,缓存对象仅在未存储数据时放置于缓存对象池中,缓存对象内存储数据后需要放置于缓存区内。

进一步地,若缓存对象池中不存在缓存对象,上述数据查询方法还包括:根据置换算法对缓存区的缓存对象中的数据进行删除处理,将经过删除处理后得到的缓存对象置于缓存对象池中,也即,缓存对象池中的缓存对象的地址空间内未存储数据。

通过上述设置,在缓存对象池内没有缓存对象时,即此时若想向缓存区内缓存数据,需要申请并创建一个存储空间,采用置换算法将缓存区内的非热点数据进行删除,即释放缓存对象后,无需再向数据库系统申请创建存储空间,直接重复使用刚被释放的缓存对象即可,达到了降低数据缓存成本和系统开销的效果。

优选地,根据本发明实施例,置换算法包括下列算法中的至少一种:最近最久未使用置换算法、最少使用置换算法、以及先进先出置换算法。

通过上述描述可知,本申请中置换算法的目的是为了识别缓存区内的非热点数据,即确定缓存区内数据的查询频率。需要说明的是,上述置换算法仅仅为示例,并不作为对本发明实施例的限定。

最近最久未使用置换算法(LRU,Least Recently Used),该算法认为最近使用/查询的数据是热点数据,下一次很大概率会再次被使用,而最近很少被使用的数据,很大概率下一次不再用到。

最少使用置换算法(LFU,Least Frequently Used),该算法认为一定时期内使用频率(查询频率)最低的数据为非热点数据。

先进先出置换算法(FIFO,First In First Out),该算法认为最先被使用/查询的数据,其不被再次使用的概率要比刚被使用的数据的概率要大。

需要说明的是,上述置换算法仅仅为示例,并不作为对本发明实施例的限定。

步骤S103,从缓存对象池中获取缓存对象,将目标数据置于缓存对象中,其中,缓存对象具有用于存储数据的地址空间。

通过上述设置,直接从缓存对象池中获取一个空缓存对象(其内未存储数据),将目标数据置于其中。实现了缓存对象的重复使用,降低了数据缓存成本和系统开销,同时,还有助于提高数据查询速度。

具体地,根据本发明实施例,对于同一类型的数据,缓存对象内的多个字段(或数组等形式)分别对应相应的数据详情,将目标数据置于缓存对象的过程可以是:针对缓存对象内各字段对应的数据类型,将目标数据拆分后写入相应的字段内,即完成数据组装。

进一步地,根据本发明实施例,上述数据查询方法还包括:设置更新周期,根据更新周期和置换算法对缓存区内的数据进行更新。

通过上述设置,使得缓存区定时对其内的非热点数据进行删除,以释放缓存对象,并释放缓存区内的存储空间,提升数据查询效率。

优选地,根据本发明实施例,上述数据查询方法还包括:缓存对象的总存储空间与缓存区的可用存储空间的大小一致。

需要说明的是,缓存对象是由缓存区向数据库系统申请并创建的,构建缓存对象池的目的是为了放置空缓存对象,以实现对缓存对象的重复使用,降低数据缓存成本。因此,缓存对象的总存储空间指示了缓存区的可用存储空间,通过缓存对象池内是否存在缓存对象或者其内缓存对象的存储空间可以确定缓存区当前可用的存储空间。

步骤S104,将包括目标数据的缓存对象置于缓存区中,并将目标数据发送至数据查询请求的发送方。

通过上述设置,目标数据下次再被查询的概率较大,因此将其放入缓存区中,有利于提升数据查询速度。

进一步地,根据本发明实施例,若缓存区的缓存对象中存在与数据编号对应的目标数据,上述数据查询方法还包括:将目标数据发送至数据查询请求的发送方,并对目标数据的查询状态进行更新。

通过上述设置,对目标数据的查询状态进行更新,有助于确定该目标数据对应的查询频率,为后续对缓存区内数据进行更新提供参考。

根据本发明实施例的技术方案,因为采用接收数据查询请求,根据数据查询请求中包括的数据编号,判断缓存区的缓存对象中是否存在与数据编号对应的目标数据;若不存在,则从数据库中查询与数据编号对应的目标数据;从缓存对象池中获取缓存对象,将目标数据置于缓存对象中,其中,缓存对象具有用于存储数据的地址空间;将包括目标数据的缓存对象置于缓存区中,并将目标数据发送至数据查询请求的发送方的技术手段,所以克服了现有的缓存区内数据的更新过程中,由于对缓存对象的不断释放和创建,导致增加数据缓存成本和系统开销,降低数据查询速度的技术问题,进而达到降低数据缓存成本和系统开销,提升数据查询速度的技术效果。

图2是根据本发明第二实施例提供的数据查询方法的主要流程的示意图;本发明实施例的一应用场景是商家信息的查询,如图2所示,本发明实施例提供的数据查询方法主要包括:

步骤S201,接收数据查询请求,其中,数据查询请求中包括数据编号。

商家管理系统接收用户通过业务系统发送的数据查询请求,该请求中包括商家ID(即数据编号),在商家管理系统的数据库内,商家ID为key,对应的商家详情信息(即目标数据)为value。

步骤S202,判断缓存区的缓存对象是否存在与数据编号对应的目标数据。若是,即缓存区中存在与数据编号对应的目标数据,则执行步骤S208;若否,即缓存区中不存在与数据编号对应的目标数据,则执行步骤S203。

缓存区内存储着热门商家对应的数据,而数据库内存储着全部商家对应的数据,接收到数据查询请求后,优先从缓存区的缓存对象中进行查询,有利于提升查询效率。

步骤S203,从数据库中查询与数据编号对应的目标数据。

步骤S204,判断缓存对象池中是否存在缓存对象,其中,缓存对象具有用于存储数据的地址空间。若是,即缓存对象池中存在缓存对象,则执行步骤S206;若否,即缓存对象池中不存在缓存对象,则转到步骤S205。

具体地,从数据库内查询到目标数据后,将该数据发送至缓存区内,有助于后续再查询该目标数据时,在缓存区即可直接查询到。通过上述设置,有利于提高数据查询速率。

步骤S205,根据置换算法对缓存区的缓存对象中的数据进行删除处理,将经过删除处理得到的缓存对象置于缓存对象池中。然后再执行步骤S204。

通过上述设置,在缓存对象池内没有缓存对象时,即此时若想向缓存区内缓存数据,需要申请并创建一个存储空间,采用置换算法将缓存区内的非热点数据进行删除,即释放缓存对象后,无需再向数据库系统申请创建存储空间,直接重复使用刚被释放的缓存对象即可,达到了降低数据缓存成本和系统开销的效果。

根据本发明实施例,置换算法包括下列算法中的至少一种:最近最久未使用置换算法、最少使用置换算法、以及先进先出置换算法。

步骤S206,从缓存对象池中获取缓存对象,将目标数据置于缓存对象中。

具体地,根据本发明实施例,缓存对象池中的缓存对象的地址空间内未存储数据,对于同一类型的数据,缓存对象内的多个字段(或数组等形式)分别对应相应的数据详情,将目标数据置于缓存对象的过程可以是:针对缓存对象内各字段对应的数据类型,将目标数据拆分后写入相应的字段内,即完成数据组装。如,将商家名称、商家地址、商家评价等分别组装至缓存对象的不同字段内。

优选地,根据本发明实施例,上述数据查询方法还包括:缓存对象的总存储空间与缓存区的可用存储空间的大小一致。

需要说明的是,缓存对象是由缓存区向数据库系统申请并创建的存储空间之一,构建缓存对象池的目的是为了放置空缓存对象,以实现对缓存对象的重复使用,降低数据缓存成本,同时还能指示缓存区的可用存储空间。因此,缓存对象的总存储空间指示了缓存区的可用存储空间,通过缓存对象池内是否存在缓存对象或者其内缓存对象的存储空间可以确定缓存区当前可用的存储空间。

进一步地,根据本发明实施例,上述数据查询方法还包括:设置更新周期,根据更新周期和置换算法对缓存区内的数据进行更新。

通过上述设置,使得缓存区定时对其内的非热点数据进行删除,以释放缓存对象,并释放缓存区内的存储空间,提升数据查询效率。

步骤S207,将包括目标数据的缓存对象置于缓存区中,并将目标数据发送至数据查询请求的发送方。

通过上述设置,目标数据下次再被查询的概率较大,因此将其放入缓存区中,有利于提升数据查询速度。

步骤S208,将目标数据发送至数据查询请求的发送发,并对目标数据的查询状态进行更新。

通过上述设置,对目标数据的查询状态进行更新,有助于确定该目标数据对应的查询频率,为后续对缓存区内数据进行更新提供参考。

根据本发明实施例的技术方案,因为采用接收数据查询请求,根据数据查询请求中包括的数据编号,判断缓存区的缓存对象中是否存在与数据编号对应的目标数据;若不存在,则从数据库中查询与数据编号对应的目标数据;从缓存对象池中获取缓存对象,将目标数据置于缓存对象中,其中,缓存对象具有用于存储数据的地址空间;将包括目标数据的缓存对象置于缓存区中,并将目标数据发送至数据查询请求的发送方的技术手段,所以克服了现有的缓存区内数据的更新过程中,由于对缓存对象的不断释放和创建,导致增加数据缓存成本和系统开销,降低数据查询速度的技术问题,进而达到降低数据缓存成本和系统开销,提升数据查询速度的技术效果。

图3是根据本发明实施例提供的数据查询装置的主要模块的示意图;如图3所示,本发明实施例提供的数据查询装置300主要包括:

缓存区查询模块301,用于接收数据查询请求,根据数据查询请求中包括的数据编号,判断缓存区的缓存对象中是否存在与数据编号对应的目标数据。

具体地,本发明实施例的数据查询涉及到的主要是非关系型数据库,其中的缓存区尤其适用于数据查询、短连接、新闻内容以及商品内容查询等场景。数据编号与数据详情(目标数据)呈一一对应的关系,如数据编号为key,则其对应的目标数据为value。对于接收到的数据查询请求,首先从缓存区中查询是否有与该数据编号对应的目标数据,有利于提升数据查询效率。

缓存对象是缓存区向数据库系统申请创建的存储空间之一,用于在缓存区内存储新增数据。

数据库查询模块302,在缓存区的缓存对象中不存在与数据编号对应的目标数据的情况下,用于从数据库中查询与数据编号对应的目标数据。

在缓存区内未查询到与数据编号对应的目标数据的情况下,再根据该数据编号从数据库中进行查询。数据库中存储着全量数据,缓存区内的缓存数据仅为数据库内的热点数据。

具体地,根据本发明实施例,上述数据查询装置300还包括缓存对象确定模块,在从数据库中查询与数据编号对应的目标数据的步骤之后,缓存对象确定模块用于:确定缓存对象池中存在缓存对象。

根据本发明实施例,在缓存区之外,还构建一个包括多个缓存对象的缓存对象池,缓存对象具有用于存储数据的地址空间。需要说明的是,缓存对象仅在未存储数据时放置于缓存对象池中,缓存对象内存储数据后需要放置于缓存区内。

进一步地,若缓存对象池中不存在缓存对象,缓存对象确定模块还用于:根据置换算法对缓存区的缓存对象中的数据进行删除处理,将经过删除处理后得到的缓存对象置于缓存对象池中,也即,缓存对象池中的缓存对象的地址空间内未存储数据。

通过上述设置,在缓存对象池内没有缓存对象时,即此时若想向缓存区内缓存数据,需要申请并创建一个存储空间,采用置换算法将缓存区内的非热点数据进行删除,即释放缓存对象后,无需再向数据库系统申请创建存储空间,直接重复使用刚被释放的缓存对象即可,达到了降低数据缓存成本和系统开销的效果。

优选地,根据本发明实施例,置换算法包括下列算法中的至少一种:最近最久未使用置换算法、最少使用置换算法、以及先进先出置换算法。

通过上述描述可知,本申请中置换算法的目的是为了识别缓存区内的非热点数据,即确定缓存区内数据的查询频率。需要说明的是,上述置换算法仅仅为示例,并不作为对本发明实施例的限定。

缓存对象获取模块303,用于从缓存对象池中获取缓存对象,将目标数据置于缓存对象中,其中,缓存对象具有用于存储数据的地址空间。

通过上述设置,直接从缓存对象池中获取一个空缓存对象(其内未存储数据),将目标数据置于其中。实现了缓存对象的重复使用,降低了数据缓存成本和系统开销,同时,还有助于提高数据查询速度。

进一步地,根据本发明实施例,上述数据查询装置300还包括数据更新模块,用于:设置更新周期,根据更新周期和置换算法对缓存区内的数据进行更新。

通过上述设置,使得缓存区定时对其内的非热点数据进行删除,以释放缓存对象,并释放缓存区内的存储空间,提升数据查询效率。

优选地,根据本发明实施例,缓存对象的总存储空间与缓存区的可用存储空间的大小一致。

需要说明的是,缓存对象是由缓存区向数据库系统申请并创建的,构建缓存对象池的目的是为了放置空缓存对象,以实现对缓存对象的重复使用,降低数据缓存成本。因此,缓存对象的总存储空间指示了缓存区的可用存储空间,通过缓存对象池内是否存在缓存对象或者其内缓存对象的存储空间可以确定缓存区当前可用的存储空间。

数据发送模块304,用于将包括目标数据的缓存对象置于缓存区中,并将目标数据发送至数据查询请求的发送方。

通过上述设置,目标数据下次再被查询的概率较大,因此将其放入缓存区中,有利于提升数据查询速度。

进一步地,根据本发明实施例,若缓存区的缓存对象中存在与数据编号对应的目标数据,数据发送模块304还用于:将目标数据发送至数据查询请求的发送方,并对目标数据的查询状态进行更新。

通过上述设置,对目标数据的查询状态进行更新,有助于确定该目标数据对应的查询频率,为后续对缓存区内数据进行更新提供参考。

图4是图3所述装置对应的数据查询系统的主要框架的示意图;如图4所示,业务系统是数据查询请求的发送方,数据查询请求中的数据编号即查询编号(id),其对应的目标数据时详情(detail)数据;JVM(Java Virtual Machine,Java虚拟机)缓存池即缓存区;内存对象池即缓存对象池;数据源即存储全量数据的数据库。

数据查询系统接收到业务系统发送包括查询编号的数据查询请求后,首先查询JVM缓存池中是否存在与该查询编号对应的详情数据(目标数据),若存在,则直接将该详情数据发送给业务系统;若不存在,则从数据源中进行查询与该查询编号对应的详情数据,然后从内存对象池中获取一个内存对象组装该目标数据,并将包括目标数据的内存对象置于JVM缓存池中,然后再将目标数据发送至业务系统。若内存对象池中不存在内存对象,则根据LRU算法从JVM缓存池中删除一个数据,将释放的内存对象置于内存对象池中,再执行组装目标数据的操作,将包括目标数据的内存对象置于JVM缓存池中,再将其发送至业务系统。

根据本发明实施例的技术方案,因为采用接收数据查询请求,根据数据查询请求中包括的数据编号,判断缓存区的缓存对象中是否存在与数据编号对应的目标数据;若不存在,则从数据库中查询与数据编号对应的目标数据;从缓存对象池中获取缓存对象,将目标数据置于缓存对象中,其中,缓存对象具有用于存储数据的地址空间;将包括目标数据的缓存对象置于缓存区中,并将目标数据发送至数据查询请求的发送方的技术手段,所以克服了现有的缓存区内数据的更新过程中,由于对缓存对象的不断释放和创建,导致增加数据缓存成本和系统开销,降低数据查询速度的技术问题,进而达到降低数据缓存成本和系统开销,提升数据查询速度的技术效果。

图5示出了可以应用本发明实施例的数据查询方法或数据查询装置的示例性系统架构500。

如图5所示,系统架构500可以包括终端设备501、502、503,网络504和服务器505(此架构仅仅是示例,具体架构中包含的组件可以根据申请具体情况调整)。网络504用以在终端设备501、502、503和服务器505之间提供通信链路的介质。网络504可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。

用户可以使用终端设备501、502、503通过网络504与服务器505交互,以接收或发送消息等。终端设备501、502、503上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等(仅为示例)。

终端设备501、502、503可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。

服务器505可以是提供各种服务的服务器,例如对用户利用终端设备501、502、503所浏览的购物类网站提供支持的后台管理服务器(仅为示例)。后台管理服务器可以对接收到的数据查询请求等数据进行分析等处理,并将处理结果(例如目标数据--仅为示例)反馈给终端设备。

需要说明的是,本发明实施例所提供的数据查询方法一般由服务器505执行,相应地,数据查询装置一般设置于服务器505中。

应该理解,图5中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。

下面参考图6,其示出了适于用来实现本发明实施例的终端设备的计算机系统600的结构示意图。图6示出的终端设备仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。

如图6所示,计算机系统600包括中央处理单元(CPU)601,其可以根据存储在只读存储器(ROM)602中的程序或者从存储部分608加载到随机访问存储器(RAM)603中的程序而执行各种适当的动作和处理。在RAM 603中,还存储有系统600操作所需的各种程序和数据。CPU 601、ROM 602以及RAM 603通过总线604彼此相连。输入/输出(I/O)接口605也连接至总线604。

以下部件连接至I/O接口605:包括键盘、鼠标等的输入部分606;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分607;包括硬盘等的存储部分608;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分609。通信部分609经由诸如因特网的网络执行通信处理。驱动器610也根据需要连接至I/O接口605。可拆卸介质611,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器610上,以便于从其上读出的计算机程序根据需要被安装入存储部分608。

特别地,根据本发明公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分609从网络上被下载和安装,和/或从可拆卸介质611被安装。在该计算机程序被中央处理单元(CPU)601执行时,执行本发明的系统中限定的上述功能。

需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本发明中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。

附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

描述于本发明实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块也可以设置在处理器中,例如,可以描述为:一种处理器包括缓存区查询模块、数据库查询模块、缓存对象获取模块和数据发送模块。其中,这些模块的名称在某种情况下并不构成对该模块本身的限定,例如缓存区查询模块还可以被描述为“用于接收数据查询请求,根据所述数据查询请求中包括的数据编号,判断缓存区的缓存对象中是否存在与所述数据编号对应的目标数据的模块”。

作为另一方面,本发明还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备包括:接收数据查询请求,根据数据查询请求中包括的数据编号,判断缓存区的缓存对象中是否存在与数据编号对应的目标数据;若不存在,则从数据库中查询与数据编号对应的目标数据;从缓存对象池中获取缓存对象,将目标数据置于缓存对象中,其中,缓存对象具有用于存储数据的地址空间;将包括目标数据的缓存对象置于缓存区中,并将目标数据发送至数据查询请求的发送方。

根据本发明实施例的技术方案,因为采用接收数据查询请求,根据数据查询请求中包括的数据编号,判断缓存区的缓存对象中是否存在与数据编号对应的目标数据;若不存在,则从数据库中查询与数据编号对应的目标数据;从缓存对象池中获取缓存对象,将目标数据置于缓存对象中,其中,缓存对象具有用于存储数据的地址空间;将包括目标数据的缓存对象置于缓存区中,并将目标数据发送至数据查询请求的发送方的技术手段,所以克服了现有的缓存区内数据的更新过程中,由于对缓存对象的不断释放和创建,导致增加数据缓存成本和系统开销,降低数据查询速度的技术问题,进而达到降低数据缓存成本和系统开销,提升数据查询速度的技术效果。

上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。

17页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种基于ElasticSearch的数据查询方法和装置

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!