一种查询的缓存方法及装置制造方法

文档序号:6519645阅读:159来源:国知局
一种查询的缓存方法及装置制造方法
【专利摘要】本发明实施例公开了一种查询的缓存方法及装置,所述方法包括:接收任一查询条件组,所述查询条件组包括N项查询条件,所述N为自然数;以预设的生成策略为依据,根据所述查询条件组生成至少一个相关查询条件组,所述相关查询条件组包括N项相关查询条件;当所述查询条件组或者所述相关查询条件组对应的查询结果不存在于缓存时,判断所述缓存是否存在剩余空间,如果是,则从数据库中获取所述查询结果,并将所述查询结果存入所述缓存。本发明将相关查询条件对应的查询结果预先存入缓存中,以便后续用户第一次输入相关查询条件时能够直接从缓存中读取查询结果,从而减少用户等待时间,提高查询效率。
【专利说明】一种查询的缓存方法及装置
【技术领域】
[0001]本发明涉及数据处理【技术领域】,具体涉及一种查询的缓存方法及装置。
【背景技术】
[0002]随着信息系统的发展,业务数据迅速增长。在海量数据条件下,迅速查询出有价值的信息,为用户提供查询结果,是各种查询类信息系统的重要功能。
[0003]缓存在计算机世界中有很广泛的应用,为了提高系统响应速度,减少用户等待时间,提高用户使用体验,一个高效、完善的服务器必须具有缓存数据的能力。在查询类信息系统中,缓存的工作原理是当用户输入一个查询条件对应时,首先从缓存中查找查询结果,如果找到就立即将该查询结果读取并返回至用户;如果没有找到,则可以用相对慢的速度从数据库中读取并返回至用户,同时把该查询结果存入缓存中,这样使得以后对该查询条件的查询都可以直接从缓存中进行,不必再读取数据库,从而节省查询的时间,提高查询的效率。
[0004]但是,上述缓存是由用户的查询条件触发的,只能缓存已经查询过的查询结果,当用户发起新的相关查询时,依然需要通过复杂的查询过程来生成查询结果,所以该缓存方法具有一定的局限性。

【发明内容】

[0005]本发明提供了一种查询的缓存方法及装置,能够对用户没有访问过但存在较大概率将要访问的相关查询结果进行缓存。
[0006]本发明提供了一种查询的缓存方法,所述方法包括:
[0007]接收任一查询条件组,所述查询条件组包括N项查询条件,所述N为自然数;
[0008]以预设的生成策略为依据,根据所述查询条件组生成至少一个相关查询条件组,所述相关查询条件组包括N项相关查询条件;
[0009]当所述查询条件组或者所述相关查询条件组对应的查询结果不存在于缓存时,判断所述缓存是否存在剩余空间,如果是,则从数据库中获取所述查询结果,并将所述查询结果存入所述缓存。
[0010]优选地,所述以预设的生成策略为依据,根据所述查询条件组生成至少一个相关查询条件组,所述相关查询条件组包括N项相关查询条件,包括:
[0011]所述查询条件组中的查询条件均完成执行预测流程,所述预测流程包括:获取所述查询条件组中的任一查询条件;以预设的生成策略为依据,根据所述查询条件生成相关查询条件,所述生成策略为所述查询条件与所述相关查询条件属于相同条件类型;
[0012]将所述相关查询条件组成相关查询条件组。
[0013]优选地,所述方法还包括:
[0014]当所述缓存不存在剩余空间时,清理所述缓存。
[0015]优选地,所述清理所述缓存,包括:[0016]判断所述缓存中的任一查询结果是否满足预设的删除条件,如果是,则将所述查询结果删除。
[0017]优选地,所述删除条件包括:
[0018]被访问次数小于预设次数,和\或,存在时间大于预设时间阈值,和\或,被访问频
率小于预设频率。
[0019]本发明还提供了一种查询的缓存装置,所述装置包括:
[0020]接收模块,用于接收任一查询条件组,所述查询条件组包括N项查询条件,所述N为自然数;
[0021]生成模块,用于以预设的生成策略为依据,根据所述查询条件组生成至少一个相关查询条件组,所述相关查询条件组包括N项相关查询条件;
[0022]判断模块,用于当所述查询条件组或者所述相关查询条件组对应的查询结果不存在于缓存时,判断所述缓存是否存在剩余空间;
[0023]存储模块,用于在所述判断模块的结果为是时,从数据库中获取所述查询结果,并将所述查询结果存入所述缓存。
[0024]优选地,所述生成模块,包括:
[0025]获取子模块,用于获取所述查询条件组中的任一查询条件;
[0026]生成子模块,用于以预设的生成策略为依据,根据所述获取子模块获取的查询条件生成相关查询条件,所述生成策略为所述查询条件与所述相关查询条件属于相同条件类型;
[0027]触发子模块,用于所述查询条件组中的查询条件均完成触发所述获取子模块。
[0028]组成子模块,用于将所述相关查询条件组成相关查询条件组。
[0029]优选地,所述装置还包括:
[0030]清理模块,用于当所述缓存不存在剩余空间时,清理所述缓存。
[0031]优选地,所述清理模块,包括:
[0032]判断子模块,用于判断所述缓存中的任一查询结果是否满足预设的删除条件;
[0033]删除子模块,用于在所述判断子模块的结果为是时,将所述查询结果删除。
[0034]本发明提供一种查询的缓存方法预先设置生成策略,在接收查询条件组之后,根据生成策略通过查询条件组生成相关查询条件。当缓存处于可以存入数据的状态时,将相关查询条件对应的查询结果预先存入缓存中,以便后续用户第一次输入相关查询条件时能够直接从缓存中读取查询结果,从而减少用户等待时间,提高查询效率。
【专利附图】

【附图说明】
[0035]为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0036]图1为本发明实施例一提供的查询的缓存方法流程图;
[0037]图2为本发明实施例二提供的查询的缓存装置结构图;
[0038]图3为本发明实施例二提供的所述生成模块202的结构图;[0039]图4为本发明实施例二提供的查询的缓存装置结构图。
【具体实施方式】
[0040]下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0041]实施例一
[0042]参考图1,图1为本实施例提供的查询的缓存方法流程图,该方法具体可以包括:
[0043]步骤101:接收任一查询条件组,所述查询条件组包括N项查询条件,所述N为自然数。
[0044]本实施例中,首先接收任意一个查询条件组,其中,查询条件组中包括至少一项查询条件。例如,查询条件组可以为(日期:20130531,机构:北京分行,业务类型:贷款),其中,该查询条件组包括三项查询条件,“日期:20130531”、“机构:北京分行”和“业务类型:贷款”均为该查询条件组中的查询条件。
[0045]实际操作中,查询条件组的来源较多,可以为用户提供的查询条件组,也可以为预先设置后直接从系统中读取的查询条件组,具体的查询条件组的提供方式本实施例不做限制。
[0046]步骤102:以预设的生成策略为依据,根据所述查询条件组生成至少一个相关查询条件组,所述相关查询条件组包括N项相关查询条件。
[0047]本实施例中,预先设置生成策略,该生成策略用于生成相关查询条件组。具体的,可以以该生成策略为依据,根据接收的查询条件组生成相关查询条件组。其中,根据一个查询条件组可以生成一个相关查询条件组,也可以生成多个相关查询条件组。
[0048]具体操作中,接收的查询条件组中的所有查询条件均需要完成执行预测流程,该预测流程可以包括:首先获取该查询条件组中的任意一个查询条件;其次,以预设的生成策略为依据,根据该查询条件生成相关查询条件,所述生成策略为所述查询条件与所述相关查询条件属于相同条件类型。当查询条件组中的所有查询条件均完成预测流程后,将生成的所有相关查询条件组成相关查询条件组。例如,可以根据查询条件“机构:天津分行”生成相关查询条件“机构:北京分行”,则“机构:天津分行”和“机构:北京分行”即属于相同条件类型。
[0049]实际操作中,生成策略可以为内容相关性的策略,也就是说,以该生成策略为依据,可以生成与查询条件组存在相似或者相关的内容的相关查询条件组。例如,查询条件组为(日期:20130531,机构:北京分行,业务类型:贷款)时,可以根据该查询条件生成(日期:20130430,机构:天津分行,业务类型:存款)的相关查询条件组,“日期:20130430”、“机构:天津分行”和“业务类型:存款”为该相关查询条件组中的相关查询条件。其中,20130430和20130531同属于同年月末的日期,贷款和存款同属于银行业务类型,用户在查询贷款数据的时候,有很大可能也会查询存款数据,所以其存在相似或者相关的内容。
[0050]根据查询条件组(日期:20130531,机构:北京分行,业务类型:贷款)也可以生成相关查询条件组(日期:20130531,机构:北京分行,业务类型:存款),所以,根据一个查询条件组也可以生成多个相关查询条件组。
[0051]另外,本实施例可以根据历史查询信息、数据对比信息及其他提前制定的规则制定生成策略,具体的预先设置生成策略的方法不受限制。同时,也可以通过对利用本实施例实现缓存的查询结果的命中概率进行统计,动态调整生成策略,使得设置的生成策略适用每个用户查询习惯。
[0052]并且,由于本实施例利用了多线程技术,所以在生成相关查询条件组的同时不影响用户当前输入的查询条件组的查询效率。
[0053]步骤103:当所述查询条件组或者所述相关查询条件组对应的查询结果不存在于缓存时,判断所述缓存是否存在剩余空间,如果是,则进入步骤104。
[0054]本实施例中,在生成相关查询条件组之后,判断相关查询条件组或者查询条件组对应的查询结果是否存在于缓存中,当缓存中不存在该查询结果时,继续判断此时的缓存是否有剩余空间用于存储该查询结果,在确定存在剩余空间的情况下,进入步骤104。
[0055]当相关查询条件组或者查询条件组对应的查询结果已经存在于缓存时,可以直接从缓存中获取该查询结果,并返回给用户。值得注意的是,相比在数据库中查找查询结果,本实施例能够从缓存直接查找查询结果,一定程度上减少了用户的等待查询时间,提高了查询效率。
[0056]实际操作中,当缓存不存在剩余空间,同时要查找的查询结构不在缓存中时,可以清理该缓存。具体的,首先以该缓存中的任意一个查询结果为对象,判断该查询结果是否满足预设的删除条件,如果是,则将该查询结果删除。其中,删除条件可以根据用户需求而设置的,具体的删除条件的内容不受限制。
[0057]具体的,预先设置的删除条件可以包括被访问次数小于预设次数,和\或,存在时间大于预设时间阈值,和\或,被访问频率小于预设频率。也就是说,可以判断查询结果的被访问次数是否小于预设次数,例如,当预设次数为10次时,如果查询结果的被访问次数小于10,则需要删除该查询结果。同样的,可以判断查询结果的存在时间是否大于预设时间阈值,以及可以判断查询结果的被访问频率是否小于预设频率。值得注意的是,以上三个删除条件可以任意组合作为新的删除条件,具体的,删除条件的内容不做严格限制。
[0058]步骤104:从数据库中获取所述查询结果,并将所述查询结果存入所述缓存。
[0059]本实施例中,当缓存中存在剩余空间,但不存在该查询结果时,可以从数据库查找该查询结果,具体的,从数据库查找查询结果的方法不受限制。当在数据库中找到查询结果后,将该查询结果存入缓存中,以便实现用户在第一次查询该查询结果时即可从缓存中加载数据,减少用户等待时间,增强用户体验。
[0060]本实施例提供一种查询的缓存方法,预先设置生成策略,在接收查询条件组之后,根据生成策略通过查询条件组生成相关查询条件。当缓存处于可以存入数据的状态时,将相关查询条件对应的查询结果预先存入缓存中,以便后续用户第一次输入相关查询条件时能够直接从缓存中读取查询结果,从而减少用户等待时间,提高查询效率。
[0061]实施例二
[0062]参考图2,图2为本实施例提供的查询的缓存装置结构图,所述装置可以包括:
[0063]接收模块201,用于接收任一查询条件组,所述查询条件组包括N项查询条件,所述N为自然数;[0064]生成模块202,用于以预设的生成策略为依据,根据所述查询条件组生成至少一个相关查询条件组,所述相关查询条件组包括N项相关查询条件;
[0065]其中,参考图3,图3为所述生成模块202的结构图,所述生成模块202可以包括:
[0066]获取子模块301,用于获取所述查询条件组中的任一查询条件;
[0067]生成子模块302,用于以预设的生成策略为依据,根据所述获取子模块获取的查询条件生成相关查询条件,所述生成策略为所述查询条件与所述相关查询条件属于相同条件类型;
[0068]触发子模块303,用于所述查询条件组中的查询条件均完成触发所述获取子模块。
[0069]组成子模块304,用于将所述相关查询条件组成相关查询条件组。
[0070]判断模块203,用于当所述查询条件组或者所述相关查询条件组对应的查询结果不存在于缓存时,判断所述缓存是否存在剩余空间;
[0071]存储模块204,用于在所述判断模块的结果为是时,从数据库中获取所述查询结果,并将所述查询结果存入所述缓存。
[0072]参考图4,图4为本实施例提供的查询的缓存装置结构图,所述装置不仅包括上述模块,还可以包括:
[0073]清理模块401,用于当所述缓存不存在剩余空间时,清理所述缓存。
[0074]其中,所述清理模块401以包括:
[0075]判断子模块4011,用于判断所述缓存中的任一查询结果是否满足预设的删除条件;
[0076]删除子模块4012,用于在所述判断子模块的结果为是时,将所述查询结果删除。
[0077]实际工作中,本实施例提供的查询的缓存装置的工作原理为:
[0078]接收任一查询条件组,所述查询条件组包括N项查询条件,所述N为自然数;
[0079]以预设的生成策略为依据,根据所述查询条件组生成至少一个相关查询条件组,所述相关查询条件组包括N项相关查询条件;
[0080]当所述查询条件组或者所述相关查询条件组对应的查询结果不存在于缓存时,判断所述缓存是否存在剩余空间,如果是,则从数据库中获取所述查询结果,并将所述查询结果存入所述缓存。
[0081]优选地,所述以预设的生成策略为依据,根据所述查询条件组生成至少一个相关查询条件组,所述相关查询条件组包括N项相关查询条件,包括:
[0082]所述查询条件组中的查询条件均完成执行预测流程,所述预测流程包括:获取所述查询条件组中的任一查询条件;以预设的生成策略为依据,根据所述查询条件生成相关查询条件,所述生成策略为所述查询条件与所述相关查询条件属于相同条件类型;
[0083]将所述相关查询条件组成相关查询条件组。
[0084]优选地,所述方法还包括:
[0085]当所述缓存不存在剩余空间时,清理所述缓存。
[0086]优选地,所述清理所述缓存,包括:
[0087]判断所述缓存中的任一查询结果是否满足预设的删除条件,如果是,则将所述查询结果删除。
[0088]优选地,所述删除条件包括:[0089]被访问次数小于预设次数,和\或,存在时间大于预设时间阈值,和\或,被访问频率小于预设频率。
[0090]本实施例提供一种查询的缓存装置,预先设置生成策略,在接收查询条件组之后,根据生成策略通过查询条件组生成相关查询条件。当缓存处于可以存入数据的状态时,将相关查询条件对应的查询结果预先存入缓存中,以便后续用户第一次输入相关查询条件时能够直接从缓存中读取查询结果,从而减少用户等待时间,提高查询效率。
[0091]对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
[0092]需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0093]以上对本发明实施例所提供的查询的缓存方法及装置进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在【具体实施方式】及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
【权利要求】
1.一种查询的缓存方法,其特征在于,所述方法包括: 接收任一查询条件组,所述查询条件组包括N项查询条件,所述N为自然数; 以预设的生成策略为依据,根据所述查询条件组生成至少一个相关查询条件组,所述相关查询条件组包括N项相关查询条件; 当所述查询条件组或者所述相关查询条件组对应的查询结果不存在于缓存时,判断所述缓存是否存在剩余空间,如果是,则从数据库中获取所述查询结果,并将所述查询结果存入所述缓存。
2.根据权利要求1所述的方法,其特征在于,所述以预设的生成策略为依据,根据所述查询条件组生成至少一个相关查询条件组,所述相关查询条件组包括N项相关查询条件,包括: 所述查询条件组中的查询条件均完成执行预测流程,所述预测流程包括:获取所述查询条件组中的任一查询条件;以预设的生成策略为依据,根据所述查询条件生成相关查询条件,所述生成策略为所述查询条件与所述相关查询条件属于相同条件类型; 将所述相关查询条件组成相关查询条件组。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括: 当所述缓存不存在剩余空间时,清理所述缓存。
4.根据权利要求3所述的方法,其特征在于,所述清理所述缓存,包括: 判断所述缓存中的任一查询结果是否 满足预设的删除条件,如果是,则将所述查询结果删除。
5.根据权利要求4所述的方法,其特征在于,所述删除条件包括: 被访问次数小于预设次数,和\或,存在时间大于预设时间阈值,和\或,被访问频率小于预设频率。
6.一种查询的缓存装置,其特征在于,所述装置包括: 接收模块,用于接收任一查询条件组,所述查询条件组包括N项查询条件,所述N为自然数; 生成模块,用于以预设的生成策略为依据,根据所述查询条件组生成至少一个相关查询条件组,所述相关查询条件组包括N项相关查询条件; 判断模块,用于当所述查询条件组或者所述相关查询条件组对应的查询结果不存在于缓存时,判断所述缓存是否存在剩余空间; 存储模块,用于在所述判断模块的结果为是时,从数据库中获取所述查询结果,并将所述查询结果存入所述缓存。
7.根据权利要求6所述的装置,其特征在于,所述生成模块,包括: 获取子模块,用于获取所述查询条件组中的任一查询条件; 生成子模块,用于以预设的生成策略为依据,根据所述获取子模块获取的查询条件生成相关查询条件,所述生成策略为所述查询条件与所述相关查询条件属于相同条件类型;触发子模块,用于所述查询条件组中的查询条件均完成触发所述获取子模块。 组成子模块,用于将所述相关查询条件组成相关查询条件组。
8.根据权利要求6所述的装置,其特征在于,所述装置还包括: 清理模块,用于当所述缓存不存在剩余空间时,清理所述缓存。
9.根据权利要求8所述的装置,其特征在于,所述清理模块,包括:判断子模块,用于判断所述缓存中的任一查询结果是否满足预设的删除条件;删除子模块,用于在所述 判断子模块的结果为是时,将所述查询结果删除。
【文档编号】G06F17/30GK103559307SQ201310579133
【公开日】2014年2月5日 申请日期:2013年11月18日 优先权日:2013年11月18日
【发明者】张渊, 何海清, 吴军, 李辉, 何启翱, 李斌, 李 赫 申请人:中国农业银行股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1