CN112395316A - 一种数据查询方法及装置 - Google Patents
一种数据查询方法及装置 Download PDFInfo
- Publication number
- CN112395316A CN112395316A CN202011249555.1A CN202011249555A CN112395316A CN 112395316 A CN112395316 A CN 112395316A CN 202011249555 A CN202011249555 A CN 202011249555A CN 112395316 A CN112395316 A CN 112395316A
- Authority
- CN
- China
- Prior art keywords
- data
- cache
- identification information
- query
- cache server
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 66
- 238000004590 computer program Methods 0.000 claims description 11
- 238000004891 communication Methods 0.000 claims description 8
- 230000008569 process Effects 0.000 description 9
- 230000004044 response Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 230000007246 mechanism Effects 0.000 description 5
- 238000001514 detection method Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000002035 prolonged effect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24552—Database cache management
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例提供了一种数据查询方法及装置,该方法包括:接收客户端发送的目标数据的数据查询请求;其中,数据查询请求中携带有目标数据的数据标识信息;查询缓存服务端是否存在与数据标识信息相对应的缓存数据;若不存在,判断缓存服务端是否存在与所述数据标识信息相对应的数据回溯任务;若缓存服务端存在与数据标识信息相对应的数据回溯任务,则等待数据回溯任务的查询结果;否则,创建数据标识信息所对应的数据回溯任务,执行并缓存所创建的数据回溯任务。本申请实施例中,可以避免针对相同的数据查询请求创建重复的数据回溯任务,从而可以减少源数据空间的并发请求量,缓解源数据空间的数据查询压力。
Description
技术领域
本申请涉及数据处理技术领域,尤其涉及一种数据查询方法及装置。
背景技术
随着计算机和互联网技术的发展,处理高并发的用户请求以成为构建大规模的互联网应用时必须要解决的一个现实问题。在高并发环境下、大量的读或者写请求涌向数据空间,为了解决高并发场景下数据空间响应延迟的问题,缓存这一技术营运而生。
所谓缓存,则是将一部分数据更新至缓存中,这样,在接收到用户发送的数据查询请求后,先检测缓存中是否存在需要查询的数据,若存在,则直接返回缓存数据。若是缓存中不存在,则再从数据库中获取数据。这样,可以减少高并发场景下涌向数据库的请求量。但是,对于大型的互联网应用而言,在大量的并发场景下,可能会存在大量的并发请求缓存穿透的情况,从而导致大量的请求穿透至数据库,进而导致数据空间出现超负载的情况、响应时间延长、数据库压力大等问题。
因此,亟需提出一种技术方案,以解决现有技术中在高并发请求下,可能会存在大量的请求穿透至数据库,进而导致数据空间出现超负载的情况、响应时间延长、数据库压力大等问题。
申请内容
本申请实施例采用下述技术方案:
本申请实施例提供一种数据查询方法,应用于缓存服务端,所述方法包括:
接收客户端发送的目标数据的数据查询请求;其中,所述数据查询请求中携带有所述目标数据的数据标识信息;
查询所述缓存服务端是否存在与所述数据标识信息相对应的缓存数据;
若所述缓存服务端不存在与所述数据标识信息相对应的缓存数据,判断所述缓存服务端是否存在与所述数据标识信息相对应的数据回溯任务;其中,所述数据回溯任务用于从源数据空间查询所述目标数据;
若所述缓存服务端存在与所述数据标识信息相对应的数据回溯任务,则等待所述数据回溯任务的查询结果;否则,创建所述数据标识信息所对应的数据回溯任务,执行并缓存所创建的所述数据回溯任务。
可选的,所述方法还包括:
若所述缓存服务端中存在所述数据标识信息所对应的缓存数据,检测所述缓存数据所对应的源数据是否已经被删除;
若是,向所述客户端返回数据不存在的提示信息;否则,向所述客户端返回所述缓存数据。
可选的,所述向所述客户端返回所述缓存数据之后,所述方法包括:
判断所述缓存数据的查询频率是否大于或等于第一预设频率值;
若是所述查询频率大于或等于所述第一预设频率值,则检测所述缓存数据的剩余有效时长是否小于或等于第一预设时间长度;
若是所述剩余有效时长小于或等于所述第一预设时间长度,则执行重新缓存所述缓存数据的操作。
可选的,所述缓存服务端中所缓存的各个所述缓存数据的失效时刻点分散设置在预设时长区间内。
可选的,所述方法还包括:
对所执行的所述数据回溯任务的数量进行计数;
若是计数结果指示单位时间内并行执行的所述数据回溯任务的数量达到预设阈值,则停止创建数据回溯任务。
可选的,所述方法还包括:
针对查询频率大于或等于第二预设频率值、且在所述源数据空间中不存在的目标源数据,在缓存服务端缓存所述目标源数据,并将所述目标源数据所对应的缓存数据的状态标记为在所述源数据空间不存在。
可选的,若所述缓存服务端存在与所述数据标识信息相对应的数据回溯任务,所述方法还包括:
检测在第二预设时间长度内是否获取到所述数据回溯任务所对应的查询结果;
若是,则将所述查询结果所对应的源数据返回给所述客户端;否则创建所述数据标识信息所对应的数据回溯任务,执行并缓存所创建的所述数据回溯任务。
本申请实施例还提供了一种数据查询装置,应用于缓存服务端,所述装置包括:
接收模块,用于接收客户端发送的目标数据的数据查询请求;其中,所述数据查询请求中携带有所述目标数据的数据标识信息;
查询模块,用于查询所述缓存服务端是否存在与所述数据标识信息相对应的缓存数据;
第一判断模块,用于若所述缓存服务端不存在与所述数据标识信息相对应的缓存数据,判断所述缓存服务端是否存在与所述数据标识信息相对应的数据回溯任务;其中,所述数据回溯任务用于从源数据空间查询所述目标数据;
第一执行模块,用于若所述缓存服务端存在与所述数据标识信息相对应的数据回溯任务,则等待所述数据回溯任务的查询结果;否则,创建所述数据标识信息所对应的数据回溯任务,执行并缓存所创建的所述数据回溯任务。
本申请实施例还提供了一种计算机设备,包括处理器、通信接口、存储器和通信总线;其中,所述处理器、所述通信接口以及所述存储器通过总线完成相互间的通信;所述存储器,用于存放计算机程序;所述处理器,用于执行所述存储器上所存放的程序,实现上述任一所述的方法步骤。
本申请实施例还提供了一种计算机可读存储介质,所述存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一所述的方法步骤。
本申请实施例采用的上述至少一个技术方案能够达到以下有益效果:
采用本申请实施例提供的技术方案,在接收到客户端发送的数据查询请求后,首先查询缓存服务端是否存在该数据查询请求所对应的缓存数据;若是不存在,则判断缓存服务端是否存在与该查询请求相对应的数据回溯任务,若是,则等待该数据回溯任务的查询结果即可,不必再创建新的数据回溯任务;若是缓存服务端不存在与该查询请求向对应的数据回溯任务时,再创建针对该数据查询请求的数据回溯任务;这样,可以避免针对相同的数据查询请求创建重复的数据回溯任务,从而可以减少源数据空间的并发请求量,缓解源数据空间的数据查询压力。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本申请实施例提供的数据查询方法的应用场景示意图;
图2为本申请实施例提供的数据查询方法的第一种流程示意图;
图3为本申请实施例提供的数据查询方法的第二种流程示意图;
图4为本申请实施例提供的数据查询装置的模块组成示意图;
图5为本申请实施例提供的网络设备的模块组成示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
以下结合附图,详细说明本申请各实施例提供的技术方案。
为便于理解本申请实施例提供的数据查询方法,首先介绍本申请实施例所提供的数据查询方法的具体应用场景。图1示出了本申请实施例提供的数据查询方法的应用场景示意图,如图1所示,该场景包括客户端、缓存服务端和源数据空间。其中,客户端可以为手机、平板电脑、计算机、电脑等,源数据空间可以为数据库、应用服务器、数据计算服务器等。在图1所示场景中以客户端为电脑、源数据空间为数据库为例进行示例性说明。
当用户需要查询数据时,通过数据查询客户端向缓存服务端发送数据查询请求,首先查询缓存服务端是否存在该数据查询请求相对应的缓存数据;若存在,则将缓存服务端的缓存数据返回给客户端即可;若是不存在,则需要在源数据空间查询与该数据查询请求相对应的源数据。在具体实施时,为了降低源数据空间的并发查询请求数量,可以先判断当前是否已经存在请求相同数据的数据回溯任务,若是存在,则直接等待数据回溯任务的查询结果即可;若是,不存在,则需要创建用于查询该数据查询请求所对应的源数据的数据回溯任务,并向源数据空间发送给数据回溯任务,以便在源数据空间中执行该数据回溯任务,缓存服务端获取数据回溯任务的查询结果,并将该查询结果返回给客户端。
首先,本申请实施例提供了一种数据查询方法,该方法应用于缓存服务端,即该方法的执行主体为缓存服务端,具体的,为安装在缓存服务端的数据查询装置。
图2为本申请实施例提供的数据查询方法的第一种流程示意图,如图2所示,该方法至少包括如下步骤:
步骤202,接收客户端发送的目标数据的数据查询请求;其中,该数据查询请求中携带有目标数据的数据标识信息。
其中,上述数据标识信息可以目标数据的关键字key值。
步骤204,查询缓存服务端是否存在与上述数据标识信息相对应的缓存数据;若不存在,则执行步骤206。
具体的,缓存服务端用于对源数据空间中的部分数据进行缓存,这样,当用户需要查询数据时,从缓存服务端就可以获取到数据,不必访问源数据空间,从而可以缓解源数据空间的访问压力。
其中,在具体实施时,在缓存服务端可以存储数据标识信息及对应的缓存数据的映射关系,即将数据标识信息和缓存数据对应的进行存储。可选的,在一种具体实施方式中,以key-value的形式进行存储,其中,key表征数据的数据标识,value标识该数据标识所对应的缓存数据。
这样,在接收到客户端发送的对目标数据的数据查询请求后,将目标数据的数据标识信息与缓存服务端中的各个数据标识信息进行匹配,将与目标数据的数据标识信息相匹配的数据标识信息所对应的缓存数据,确定为上述数据查询请求相对应的缓存数据,即需要查询的目标数据。当然,若是不存在与目标数据的数据标识信息相匹配的数据标识信息,则说明缓存服务端不存在该数据查询请求所对应的缓存数据。这时则需要从源数据空间查询目标数据。
步骤206,判断缓存服务端是否存在与上述数据标识信息相对应的数据回溯任务;若存在,则执行步骤208;否则,执行步骤210。
其中,上述数据回溯任务用于从源数据空间查询目标数据。
具体的,上述源数据空间可以为数据库、某业务的业务服务器、某数据计算服务器等等。
步骤208,等待数据回溯任务的查询结果。
步骤210,创建数据标识信息所对应的数据回溯任务,执行并缓存所创建的数据回溯任务。
具体的,在本申请实施例中,为了减少源数据空间的并发请求量,也即数据回溯任务的并发执行量,当缓存服务端不存在数据查询请求所对应的缓存数据时,先判断缓存服务端是否存在上述数据标识信息对应的数据回溯任务,即判断是否已创建了用于查询相同数据的数据回溯任务,若是,则直接等待该数据回溯任务的执行结果即可,这样,可以避免创建用于查询相同数据的数据回溯任务,从而可以减少源数据空间的并发请求量,缓解源数据空间的数据查询压力。
当然,若是上述步骤206的判断结果指示缓存服务端不存在上述数据标识信息所对应的数据回溯任务,说明并未创建过用于查询与目标数据相同的数据的数据回溯任务,这时则需要创建该数据标识信息所对应的数据回溯任务,在创建了该数据回溯任务后,在执行该数据回溯任务的同时,将该数据回溯任务缓存在缓存服务端;这样,当接收到新的数据查询请求、且需要在源数据空间进行源数据查询时,可以基于缓存服务端所缓存的各个数据回溯任务,判断当前是否已经在执行查询该数据的数据回溯任务,从而可以减少源数据空间的并发请求量,缓解源数据空间的数据查询压力。
可选的,在一种具体实施方式中,在缓存服务端缓存各个数据回溯任务时,可以记录数据标识信息和对应的数据回溯任务的映射关系。
本申请实施例提供的数据查询方法,在缓存服务端缓存有各个已创建的数据回溯任务,这样,当需要从源数据空间查询数据时,可以先查看缓存服务端是否存在需要查询数据所对应的数据回溯任务,即判断是否已创建了用于查询相同数据的数据回溯任务,若是,则直接等待该数据回溯任务的执行结果即可,这样,可以避免创建用于查询相同数据的数据回溯任务,从而可以减少源数据空间的并发请求量,缓解源数据空间的数据查询压力。
具体的,在一种具体实施方式中,若缓存服务端存在与上述数据标识信息相对应的数据回溯任务,本申请实施例提供的方法还包括如下步骤:
检测在第一预设时间长度内是否获取到数据回溯任务所对应的查询结果;若是,则将该查询结果所对应的源数据返回给客户端;否则,创建该数据标识信息所对应的数据回溯任务,执行并缓存所创建的数据回溯任务。
具体的,在本申请实施例中,若是缓存服务端存在上述数据标识信息所对应的缓存数据,则检测该缓存数据所对应的源数据是否已经被删除;若是,则向客户端返回数据不存在的提示信息;否则,向客户端返回上述缓存数据。
在某些情况下,可能会删除源数据空间中存储的某些源数据,这样,为了防止客户端从缓存服务端获取到在源数据空间中已经被删除了的某些数据,在一种具体实施方式中,可以对源数据空间中已经删除了的源数据所对应的缓存数据进行标记。例如,当删除源数据空间中存储的源数据A后,则提示缓存服务端源数据A已经被删除,这时,则缓存服务端会将原数据A的状态标记为源数据已删除。
因此,在具体实施时,可以通过读取缓存数据所对应的状态信息可以判断出该缓存数据所对应的源数据是否已经被删除。可选的,可以在缓存服务端建立缓存数据结构体CacheItem,在该结构体CacheItem中存储有缓存数据的状态信息以及对应的缓存数据。
在本申请实施例中,若是检测结果指示该缓存数据所对应的源数据已经被删除,则向客户端数据不存在的提示信息,例如,可以向客户端返回NULL提示信息。
另外,需要说明的是,在本申请实施例中,还可以执行如下操作:
定期检测缓存服务端中的热点数据的剩余有效时长是否小于或等于第一预设时间长度;若剩余有效时长小于或等于第一预设时间长度,则执行重新缓存该缓存数据的操作。
其中,上述热点数据可以理解为访问频率大于或等于第一预设频率值的数据。
具体的,上述重新缓存该缓存数据的操作可以通过如下过程实现:
判断缓存服务端是否存在该缓存数据所对应的数据回溯任务;若存在,则等待该数据回溯任务的执行结果;否则,创建该缓存数据所对应的数据回溯任务,执行并缓存该数据回溯任务,从而实现从源数据空间获取该缓存数据,并缓存至缓存服务端。
一般的,为了防止出现缓存服务端的缓存空间不足的情况,对于存储在缓存服务端的缓存数据均设置有有效时长,当缓存数据处于缓存服务端的时间长度达到缓存数据所对应的有效时长后,则从缓存服务端删除该缓存数据。例如,上述缓存数据的有效时长的具体取值可以为5分钟、10分钟等任意取值,其中,缓存数据所对应的有效时长的具体取值可以根据实际应用场景进行设置,本申请实施例并不对此进行限定。
因此,在具体实施时,为了降低热点数据查询的响应时间,可以在缓存服务端采用预加载机制。所谓预加载机制则是针对缓存服务端中的热点数据,检测该缓存数据所对应的剩余有效时长是否小于或等于第一预设时间长度,若是,则重新将该缓存数据缓存至缓存服务端。
在本申请实施例中,上述预加载机制主要针对的为热点数据,通过预加载机制可以在缓存服务端中所缓存的热点数据失效之前提前加载到缓存服务端,这样,当需要查询该热点数据时,可以直接从缓存服务端获取该热点数据,从而避免了从源数据空间查询所述热点数据的操作,进而可以降低该数据查询的响应时间。
当然,在另外一种具体实施方式中,可以是在确定缓存服务中存在上述数据标识所对应的缓存数据后,且向客户端返回该缓存数据之后,则启动预加载机制。
具体的,上述向客户端返回上述缓存数据之后,本申请实施例提供的方法还包括:
判断上述缓存数据的查询频率是否大于或等于第一预设频率值;若是,则检测缓存数据的剩余有效时长是否小于或等于第一预设时间长度;若是,则执行重新缓存该缓存数据的操作。
其中,上述判断缓存数据的查询频率是否大于或等于第一预设频率值,实际上为判断该缓存数据是否为热点数据的过程。上述第一预设频率值的具体取值可以根据实际应用场景进行设置,本申请实施例并不对此进行限定。
另外,需要说明的是,在本申请实施例中,若是将缓存数据的有效时长设置为一个具体的数值,或是在某个时刻同时缓存了大量的数据,相应的,在同一时刻会存在大量的数据失效,若是在数据失效后,同时涌入了针对失效数据的大量并发请求,则需要从源数据空间查询数据,会给源数据空间带来较大的数据查询压力。因此,为了防止出现上述情况,在本申请实施例中,可以分散设置各个缓存数据的失效时刻点,具体的,可以预先设置一个时长区间,然后将将缓存服务端中所缓存的各个缓存数据的失效时刻点分散设置在预设时长区间内。这样各个缓存数据所对应的失效时刻点不同,可以避免出现缓存数据集中失效的情况的发生。
例如,在一种具体实施方式中,可以通过在原有的有效时长的基础上增加浮动范围的方式得到上述时长区间。假设缓存数据原有的有效时长为10分钟,可以在该有效时长的基础上增加10%的有效时长,生成该有效时长所对应的时长区间,也即,该缓存数据所对应的有效时长区间为10-11分钟,并且可在10-11分钟内设置多个失效时间点,对于不同的缓存而言,可以从上述多个失效时间点随机选择一个失效时间点作为该缓存数据所对应的失效时刻。这样,可以避免大量数据集中失效,从而给源数据空间带来较大的数据查询压力的情况的发生,即减缓了源数据空间的数据查询压力。
可选的,在一种具体实施方式中,为了进一步减少源数据空间的并发访问量,减缓源数据空间的数据查询压力,在本申请实施例中,还可以对针对源数据空间的数据查询请求进行限流。即限制单位时间内所执行的数据回溯任务的数量。具体的,现有技术中可实现的并发限流的方法均可应用于本申请实施例,如令牌桶、漏桶、计数器等。
因此,在本申请实施例中,本申请实施例提供的方法,还包括:
对所执行的数据回溯任务的数量进行计数;若是计数结果指示单位时间内并行执行的数据回溯任务的数量达到预设阈值,则停止创建数据回溯任务。
例如,上述预设阈值的具体取值可以为100,上述单位时间可以为秒,也即,若是计数结果指示所执行的数据回溯任务的数量达到每条100个时,则停止创建数据回溯任务,当低于每秒100个时,则继续基于用户的数据查询请求创建数据回溯任务。
在本申请实施例中,通过限制源数据空间中并发执行的数据回溯任务(也即并发查询)的并发量,可以减少从源数据空间进行数据查询的并发量,从而缓解源数据空间的数据查询压力。
此外,为了减少源数据空间的数据查询压力,针对一些源数据空间中不存在的、且访问频率较高的源数据,可以在缓存服务端存储该源数据的缓存数据,并在缓存服务端标记该缓存数据所对应的源数据不存在,这样,当用户需要查询该类数据时,在缓存服务端就可以快速返回数据不存在的查询结果,从而避免了在源数据空间执行一次数据查询操作,从而减缓了源数据空间的数据查询压力。
因此,本申请实施例提供的方法,还包括如下步骤:
针对查询频率大于或等于第二预设频率值、且在源数据空间中不存在的目标源数据,在缓存服务端缓存该目标源数据,并将目标源数据所对应的缓存数据的状态标记为在源数据空间不存在。
例如,若是源数据A的查询频率大于或等于预设频率值,但是源数据A在源数据空间不存在,为了防止由于源数据A导致源数据空间的数据查询压力,可以在缓存服务端缓存源数据A,并在源数据A所对应的缓存数据的结构体CacheItem中将该缓存数据的状态标记为在源数据空间不存在。这样,当缓存服务端接收到针对源数据A的数据查询请求时,在缓存服务端会查询到该缓存数据,并基于该缓存数据所对应的状态确定出源数据A在源数据空间不存在,因此,向客户端返回源数据A不存在的查询结果。
其中,上述第二预设频率值的具体取值可以依据实际需求进行设置,本申请实施例并不对上述第二预设频率的具体取值进行限定。另外,需要说明的是,上述第一预设频率值和第二预设频率值的具体取值可以相同、也可以不相同。
另外,需要说明的是,在本申请实施例中,缓存服务端在将缓存数据或者从源数据空间获取的源数据返回给客户端时,需要对将需要将缓存数据或者源数据进行序列化,之后再将序列化后的数据返回给客户端;在客户端接收到该数据后,需要对该数据进行反序列化,因此,在本申请实施例中,为了保证数据序列化和反序列化的效率,可以基于protobuf协议定义结构体后序列化和反序列化代码自动生成。
图3示出了本申请实施例提供的数据查询方法的第二种流程示意图,如图3所示,该方法至少包括如下步骤:
步骤302,接收客户端发送的目标数据的数据查询请求;其中,该数据查询请求中携带有目标数据的数据标识信息。
步骤304,查询缓存服务端是否存在与该数据标识信息相对应的缓存数据;若存在,则执行步骤306;否则执行步骤318。
步骤306,基于上述缓存数据的状态信息判断该缓存数据所对应的源数据是否已经被删除;若是,则执行步骤308;否则执行步骤310。
步骤308,向客户端返回NULL信息。
步骤310,将上述缓存数据进行序列化处理,并将序列化后的数据返回给客户端。
步骤312,判断上述缓存数据的查询频率是否大于或等于第一预设频率值;若是,则执行步骤314;否则,结束。
步骤314,检测上述缓存数据的剩余有效时长是否小于或等于第一预设时间长度;若是,则执行步骤316;否则,结束。
步骤316,执行重新缓存该缓存数据的操作。
步骤318,判断缓存服务端是否存在与上述数据标识信息相对应的数据回溯任务;若存在,则执行步骤320;否则,执行步骤322。
步骤320,等待该数据回溯任务的查询结果。
步骤322,检测当前执行的数据回溯任务的数量是否达到预设阈值;若未达到,则执行步骤324。
步骤324,创建上述数据标识信息所对应的数据回溯任务,执行并缓存上述数据回溯任务。
本申请实施例提供的数据查询方法,在接收到客户端发送的数据查询请求后,首先查询缓存服务端是否存在该数据查询请求所对应的缓存数据;若是不存在,则判断缓存服务端是否存在与该数据查询请求相对应的数据回溯任务,若是,则等待该数据回溯任务的查询结果即可,不必再创建新的数据回溯任务;若是缓存服务端不存在与该数据查询请求向对应的数据回溯任务时,再创建针对该数据数据查询请求的数据回溯任务;这样,可以避免针对相同的数据查询请求创建重复的数据回溯任务,从而可以减少源数据空间的并发请求量,缓解源数据空间的数据查询压力。
对应于本申请实施例提供的方法,基于相同的思路,本申请实施例还提供了一种数据查询装置,应用于缓存服务端,图4为本申请实施例提供的数据查询装置的模块组成示意图,如图4所示,该装置包括:
接收模块402,用于接收客户端发送的目标数据的数据查询请求;其中,所述数据查询请求中携带有所述目标数据的数据标识信息;
查询模块404,用于查询所述缓存服务端是否存在与所述数据标识信息相对应的缓存数据;
第一判断模块406,用于若所述缓存服务端不存在与所述数据标识信息相对应的缓存数据,判断所述缓存服务端是否存在与所述数据标识信息相对应的数据回溯任务;其中,所述数据回溯任务用于从源数据空间查询所述目标数据;
第一执行模块408,用于若所述缓存服务端存在与所述数据标识信息相对应的数据回溯任务,则等待所述数据回溯任务的查询结果;否则,创建所述数据标识信息所对应的数据回溯任务,执行并缓存所创建的所述数据回溯任务。
可选的,所述装置还包括:
第一检测模块,用于若所述缓存服务端中存在所述数据标识信息所对应的缓存数据,检测所述缓存数据所对应的源数据是否已经被删除;
发送模块,用于若所述缓存数据所对应的源数据已经被删除,向所述客户端返回数据不存在的提示信息;否则,向所述客户端返回所述缓存数据。
可选的,所述装置还包括:
第二判断模块,用于判断所述缓存数据的查询频率是否大于或等于第一预设频率值;
第二检测模块,用于若所述缓存数据的查询频率大于或等于所述第一预设频率值,则检测所述缓存数据的剩余有效时长是否小于或等于第一预设时间长度;
第二执行模块,用于若是所述缓存数据的剩余有效时长小于或等于第一预设时间长度,则执行重新缓存所述缓存数据的操作。
可选的,所述缓存服务端中所缓存的各个所述缓存数据的失效时刻点分散设置在预设时长区间内。
可选的,所述装置还包括:
计数模块,用于对所执行的数据回溯任务的数量进行计数;
第三执行模块,若是计数结果指示单位时间内并行执行的数据回溯任务的数量达到预设阈值,则停止创建数据回溯任务。
可选的,所述装置还包括:
缓存模块,用于针对查询频率大于或等于第二预设频率值、且在所述源数据空间中不存在的源目标源数据,在缓存服务端缓存所述目标源数据;
标记模块,用于将所述目标源数据所对应的缓存数据的状态标记为在所述源数据空间不存在。
可选的,本申请实施例提供的装置还包括:
第三检测模块,用于检测在第二预设时间长度内是否获取到所述数据回溯任务所对应的查询结果;
第四执行模块,用于若在第二预设时间长度内获取到所述数据回溯任务所对应的查询结果,则将所述查询结果所对应的源数据返回给所述客户端;否则创建所述数据标识信息所对应的数据回溯任务,执行并缓存所创建的所述数据回溯任务。
本申请实施例提供的数据查询装置中,数据查询功能各模块所对应功能的具体实现过程与图1-图3所对应方法实施例中各个步骤的具体实现过程相同,因此,数据查询装置各个模块所对应功能的具体实现过程可参考图1-图3所对应方法实施例,此处不再赘述。
本申请实施例提供的数据查询装置,在接收到客户端发送的数据查询请求后,首先查询缓存服务端是否存在该数据查询请求所对应的缓存数据;若是不存在,则判断缓存服务端是否存在与该查询请求相对应的数据回溯任务,若是,则等待该数据回溯任务的查询结果即可,不必再创建新的数据回溯任务;若是缓存服务端不存在与该查询请求向对应的数据回溯任务时,再创建针对该数据查询请求的数据回溯任务;这样,可以避免针对相同的数据查询请求创建重复的数据回溯任务,从而可以减少源数据空间的并发请求量,缓解源数据空间的数据查询压力。
相应于本申请实施例提供的一种数据查询方法,本申请实施例提供一种网络设备,参见图5所示,网络设备包括处理器510、收发机520、存储器530和总线接口。其中:
在本申请实施例中,网络设备500还包括:存储在存储器530上并可在所述处理器510上运行的计算机程序,所述计算机程序被所述处理器510执行时实现上述数据查询方法的各个步骤,且能达到相同的技术效果,为避免重复,这里不再赘述。
在图5中,总线架构可以包括任意数量的互联的总线和桥,具体由处理器510代表的一个或多个处理器和存储器530代表的存储器的各种电路链接在一起。总线架构还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路链接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口提供接口。收发机520可以是多个元件,即包括发送机和接收机,提供用于在传输介质上与各种其他装置通信的单元。
处理器510负责管理总线架构和通常的处理,存储器530可以存储处理器510在执行操作时所使用的数据。
本申请实施例还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。其中,所述的计算机可读存储介质,如只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本申请各个实施例所述的方法。
上面结合附图对本申请的实施例进行了描述,但是本申请并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本申请的启示下,在不脱离本申请宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本申请的保护之内。
Claims (10)
1.一种数据查询方法,应用于缓存服务端,其特征在于,所述方法包括:
接收客户端发送的目标数据的数据查询请求;其中,所述数据查询请求中携带有所述目标数据的数据标识信息;
查询所述缓存服务端是否存在与所述数据标识信息相对应的缓存数据;
若所述缓存服务端不存在与所述数据标识信息相对应的缓存数据,判断所述缓存服务端是否存在与所述数据标识信息相对应的数据回溯任务;其中,所述数据回溯任务用于从源数据空间查询所述目标数据;
若所述缓存服务端存在与所述数据标识信息相对应的数据回溯任务,则等待所述数据回溯任务的查询结果;否则,创建所述数据标识信息所对应的数据回溯任务,执行并缓存所创建的所述数据回溯任务。
2.如权利要求1所述的方法,其特征在于,所述方法还包括:
若所述缓存服务端中存在所述数据标识信息所对应的缓存数据,检测所述缓存数据所对应的源数据是否已经被删除;
若是,向所述客户端返回数据不存在的提示信息;否则,向所述客户端返回所述缓存数据。
3.如权利要求2所述的方法,其特征在于,所述向所述客户端返回所述缓存数据之后,所述方法包括:
判断所述缓存数据的查询频率是否大于或等于第一预设频率值;
若是所述查询频率大于或等于所述第一预设频率值,则检测所述缓存数据的剩余有效时长是否小于或等于第一预设时间长度;
若是所述剩余有效时长小于或等于所述第一预设时间长度,则执行重新缓存所述缓存数据的操作。
4.如权利要求3所述的方法,其特征在于,所述缓存服务端中所缓存的各个所述缓存数据的失效时刻点分散设置在预设时长区间内。
5.如权利要求1-4任一项所述的方法,其特征在于,所述方法还包括:
对所执行的所述数据回溯任务的数量进行计数;
若是计数结果指示单位时间内并行执行的所述数据回溯任务的数量达到预设阈值,则停止创建数据回溯任务。
6.如权利要求1-4任一项所述的方法,其特征在于,所述方法还包括:
针对查询频率大于或等于第二预设频率值、且在所述源数据空间中不存在的目标源数据,在缓存服务端缓存所述目标源数据,并将所述目标源数据所对应的缓存数据的状态标记为在所述源数据空间不存在。
7.如权利要求1所述的方法,其特征在于,若所述缓存服务端存在与所述数据标识信息相对应的数据回溯任务,所述方法还包括:
检测在第二预设时间长度内是否获取到所述数据回溯任务所对应的查询结果;
若是,则将所述查询结果所对应的源数据返回给所述客户端;否则创建所述数据标识信息所对应的数据回溯任务,执行并缓存所创建的所述数据回溯任务。
8.一种数据查询装置,应用于缓存服务端,其特征在于,所述装置包括:
接收模块,用于接收客户端发送的目标数据的数据查询请求;其中,所述数据查询请求中携带有所述目标数据的数据标识信息;
查询模块,用于查询所述缓存服务端是否存在与所述数据标识信息相对应的缓存数据;
第一判断模块,用于若所述缓存服务端不存在与所述数据标识信息相对应的缓存数据,判断所述缓存服务端是否存在与所述数据标识信息相对应的数据回溯任务;其中,所述数据回溯任务用于从源数据空间查询所述目标数据;
第一执行模块,用于若所述缓存服务端存在与所述数据标识信息相对应的数据回溯任务,则等待所述数据回溯任务的查询结果;否则,创建所述数据标识信息所对应的数据回溯任务,执行并缓存所创建的所述数据回溯任务。
9.一种计算机设备,其特征在于,包括处理器、通信接口、存储器和通信总线;其中,所述处理器、所述通信接口以及所述存储器通过总线完成相互间的通信;所述存储器,用于存放计算机程序;所述处理器,用于执行所述存储器上所存放的程序,实现权利要求1-7任一所述的方法步骤。
10.一种计算机可读存储介质,其特征在于,所述存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-7任一所述的方法步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011249555.1A CN112395316B (zh) | 2020-11-10 | 2020-11-10 | 一种数据查询方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011249555.1A CN112395316B (zh) | 2020-11-10 | 2020-11-10 | 一种数据查询方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112395316A true CN112395316A (zh) | 2021-02-23 |
CN112395316B CN112395316B (zh) | 2023-08-29 |
Family
ID=74600623
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011249555.1A Active CN112395316B (zh) | 2020-11-10 | 2020-11-10 | 一种数据查询方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112395316B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113448999A (zh) * | 2021-06-29 | 2021-09-28 | 未鲲(上海)科技服务有限公司 | 数据获取方法、装置、设备及可读存储介质 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101090401A (zh) * | 2007-05-25 | 2007-12-19 | 金蝶软件(中国)有限公司 | 一种群集环境下的数据缓存方法及系统 |
CN102542034A (zh) * | 2011-12-23 | 2012-07-04 | 北京人大金仓信息技术股份有限公司 | 一种数据库接口的结果集缓存方法 |
CN106547828A (zh) * | 2016-09-30 | 2017-03-29 | 南京途牛科技有限公司 | 一种基于神经网络的数据库缓存系统及方法 |
CN106649301A (zh) * | 2015-10-28 | 2017-05-10 | 北京国双科技有限公司 | 数据查询的方法、装置及系统 |
WO2017215432A1 (zh) * | 2016-06-15 | 2017-12-21 | 腾讯科技(深圳)有限公司 | 数据回档方法、装置及系统 |
CN109145020A (zh) * | 2018-07-23 | 2019-01-04 | 程之琴 | 信息查询方法、从服务器、客户端及计算机可读存储介质 |
CN109446448A (zh) * | 2018-09-10 | 2019-03-08 | 平安科技(深圳)有限公司 | 数据处理方法和系统 |
CN110928904A (zh) * | 2019-10-31 | 2020-03-27 | 北京浪潮数据技术有限公司 | 一种数据查询方法、装置及相关组件 |
CN111522836A (zh) * | 2020-04-22 | 2020-08-11 | 杭州海康威视系统技术有限公司 | 一种数据查询方法、装置、电子设备及存储介质 |
CN111858641A (zh) * | 2020-07-30 | 2020-10-30 | 中国工商银行股份有限公司 | 事务处理方法、装置、电子设备和可读存储介质 |
-
2020
- 2020-11-10 CN CN202011249555.1A patent/CN112395316B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101090401A (zh) * | 2007-05-25 | 2007-12-19 | 金蝶软件(中国)有限公司 | 一种群集环境下的数据缓存方法及系统 |
CN102542034A (zh) * | 2011-12-23 | 2012-07-04 | 北京人大金仓信息技术股份有限公司 | 一种数据库接口的结果集缓存方法 |
CN106649301A (zh) * | 2015-10-28 | 2017-05-10 | 北京国双科技有限公司 | 数据查询的方法、装置及系统 |
WO2017215432A1 (zh) * | 2016-06-15 | 2017-12-21 | 腾讯科技(深圳)有限公司 | 数据回档方法、装置及系统 |
CN106547828A (zh) * | 2016-09-30 | 2017-03-29 | 南京途牛科技有限公司 | 一种基于神经网络的数据库缓存系统及方法 |
CN109145020A (zh) * | 2018-07-23 | 2019-01-04 | 程之琴 | 信息查询方法、从服务器、客户端及计算机可读存储介质 |
CN109446448A (zh) * | 2018-09-10 | 2019-03-08 | 平安科技(深圳)有限公司 | 数据处理方法和系统 |
CN110928904A (zh) * | 2019-10-31 | 2020-03-27 | 北京浪潮数据技术有限公司 | 一种数据查询方法、装置及相关组件 |
CN111522836A (zh) * | 2020-04-22 | 2020-08-11 | 杭州海康威视系统技术有限公司 | 一种数据查询方法、装置、电子设备及存储介质 |
CN111858641A (zh) * | 2020-07-30 | 2020-10-30 | 中国工商银行股份有限公司 | 事务处理方法、装置、电子设备和可读存储介质 |
Non-Patent Citations (2)
Title |
---|
夏英: "多维空间数据索引结构的并发控制方案", 《重庆邮电大学学报(自然科学版)》, vol. 14, no. 1, pages 200 - 77 * |
李锐,董少英: "《UEP Cloud实训教程》", 华南理工大学出版社 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113448999A (zh) * | 2021-06-29 | 2021-09-28 | 未鲲(上海)科技服务有限公司 | 数据获取方法、装置、设备及可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112395316B (zh) | 2023-08-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106302595B (zh) | 一种对服务器进行健康检查的方法及设备 | |
CN109710695B (zh) | 事务请求有效性识别和发起方法、装置、设备和介质 | |
US20150142845A1 (en) | Smart database caching | |
CN108111325B (zh) | 一种资源分配方法及装置 | |
JP2011505615A (ja) | Oltp環境における統計アプリケーション | |
US20110264767A1 (en) | Interactive processing method and apparatus between content-id management servers | |
CN114021089A (zh) | 一种目录访问控制方法、装置、设备及可读存储介质 | |
CN113448971A (zh) | 基于分布式系统的数据更新方法、计算节点和存储介质 | |
CN110502581B (zh) | 分布式数据库系统监测方法及装置 | |
CN112395316A (zh) | 一种数据查询方法及装置 | |
CN111488568B (zh) | 客户端方法、装置、设备和存储介质 | |
KR102567900B1 (ko) | 클라우드 저하 모드에서 지속적인 디바이스 동작 안정성을 보장하기 위한 방법 및 장치 | |
US9317432B2 (en) | Methods and systems for consistently replicating data | |
CN116070294B (zh) | 一种权限管理方法、系统、装置、服务器及存储介质 | |
CN110191203B (zh) | 实现服务器动态访问的方法及电子设备 | |
CN112711606A (zh) | 数据库访问方法、装置、计算机设备和存储介质 | |
CN110311975B (zh) | 一种数据请求处理方法及装置 | |
CN113064732A (zh) | 一种分布式系统及其管理方法 | |
CN108491160B (zh) | 一种数据写入方法及装置 | |
CN115357779A (zh) | 一种数据处理方法、装置、系统、电子设备及存储介质 | |
CN114553521A (zh) | 一种远端内存访问方法、装置、设备及介质 | |
CN115017538A (zh) | 一种数据处理方法、装置、电子设备及存储介质 | |
CN113779052A (zh) | 数据更新方法、装置、设备及存储介质 | |
CN114780267B (zh) | 一种接口调用方法、装置、设备及存储介质 | |
CN113704592B (zh) | 网络请求的发送方法、装置、电子设备及存储介质 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |