CN110866034A - 服务端节流的方法、存储介质 - Google Patents
服务端节流的方法、存储介质 Download PDFInfo
- Publication number
- CN110866034A CN110866034A CN201911022527.3A CN201911022527A CN110866034A CN 110866034 A CN110866034 A CN 110866034A CN 201911022527 A CN201911022527 A CN 201911022527A CN 110866034 A CN110866034 A CN 110866034A
- Authority
- CN
- China
- Prior art keywords
- query
- server
- final
- condition
- client
- 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
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/2453—Query optimisation
-
- 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/2452—Query translation
- G06F16/24522—Translation of natural language queries to structured queries
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种服务端节流的方法、存储介质,方法包括:服务端接收客户端上送的请求数据,所述请求数据包括对应当前时间点的查询条件和客户端的唯一标识符;服务端建立以唯一标识符为key,以唯一标识符对应的各个查询条件及其查询时间点为value的映射表;服务端返回最终查询条件对应的最终查询结果至客户端时,触发一个异步线程;异步线程依据所述映射表,获取所述最终查询条件对应的查询时间段内的各个查询条件,并缓存其对应的各个查询结果。本发明不仅能够提高命中率,提高查询响应效率;而且减少服务端系统的压力,提高了接口性能。
Description
技术领域
本发明涉及服务端请求处理领域,具体涉及服务端节流的方法、存储介质。
背景技术
函数节流指的是预定一个函数,只有函数在大于等于执行周期时才执行,周期内调用不执行。这个功能在Web客户端中很常见。其主要实现场景为:客户端输入一串数字,然后,立马访问服务端,之后服务端查询相关数据源,并返回对应结果给客户端,并展示。而为了防止无用查询,客户端会实现防抖与节流,在一定期间之内减少服务端的无效访问。无效访问指的是,比如我查询“林志勋”,预先输入“林”,则会把“林”相关的结果显示出来,而其实最终我是想查询“林志勋”,这就可以等待一定的时间,然后再查询,以此减少无效查询。不过,当查询的数据量很多或者查询接口耗时较多,以及客户端调用量大量增加时,即使使用这种客户端节流的方式,也还是会对服务端系统造成压力。
发明内容
本发明所要解决的技术问题是:提供一种服务端节流的方法、存储介质,不仅加快了查询响应速度,而且减少服务端系统的压力。
为了解决上述技术问题,本发明采用的技术方案为:
一种服务端节流的方法,包括:
服务端接收客户端上送的请求数据,所述请求数据包括对应当前时间点的查询条件和客户端的唯一标识符;
服务端建立以唯一标识符为key,以唯一标识符对应的各个查询条件及其查询时间点为value的映射表;
服务端返回最终查询条件对应的最终查询结果至客户端时,触发一个异步线程;
所述异步线程依据所述映射表,获取所述最终查询条件对应的查询时间段内的各个查询条件,并缓存其对应的各个查询结果。
本发明提供的另一个技术方案为:
一种计算机可读存储介质,其上存储有计算机程序,所述程序在被处理器执行时,能够实现上述一种服务端节流的方法所包含的步骤。
本发明的有益效果在于:通过在服务端创建映射表,标识各个客户端每个查询过程的输入记录和时间点,用于快速确定最终查询条件,减少查询流量;同时,还将有一个独立的异步线程针对输入记录进行独立查询并将查询结果载入缓存中,通过预加载,能够在后续查询中显著提高查询的响应速度,减少服务端的压力。总体上实现服务端流量得节省。
附图说明
图1为本发明实施例一种服务端节流的方法的流程示意图;
图2为本发明实施例一的一种服务端节流的方法的流程示意图。
具体实施方式
为详细说明本发明的技术内容、所实现目的及效果,以下结合实施方式并配合附图予以说明。
本发明最关键的构思在于:通过标识各个客户端每个查询过程的输入记录和时间点,能够快速确定最终查询条件,并通过独立异步线程预加载输入记录的查询结果至缓存,提高查询响应速度。
请参照图1,本发明提供一种服务端节流的方法,包括:
服务端接收客户端上送的请求数据,所述请求数据包括对应当前时间点的查询条件和客户端的唯一标识符;
服务端建立以唯一标识符为key,以唯一标识符对应的各个查询条件及其查询时间点为value的映射表;
服务端返回最终查询条件对应的最终查询结果至客户端时,触发一个异步线程;
所述异步线程依据所述映射表,获取所述最终查询条件对应的查询时间段内的各个查询条件,并缓存其对应的各个查询结果。
从上述描述可知,本发明的有益效果在于:本文采用一种服务端节流的方式,会将查询过程中分时输入的各个查询条件存储在服务端,并据此获取最终查询条件进行返回,提高查询查询效率。同时,会有独立的异步线程,针对每次查询过程的各个查询条件进行独立查询获取结果,并在服务端进行存储,以便下次查询时,能够加快查询速度。由此,实现加快接口响应速度,减少服务端系统的压力,提高接口性能。
进一步地,异步线程依据确认查询时间点和所述映射表的查询时间点,确定最终查询条件对应的查询时间段。
由上述描述可知,异步线程能够依据映射表快速而准确地锁定需要进行查询条件独立查询的时间段。
进一步地,所述服务端返回最终查询条件对应的最终查询结果至客户端,具体为:
服务端依据最终查询条件查询缓存,若无果,则查询数据库,并返回所述最终查询条件对应的最终查询结果至客户端。
由上述描述可知,由于服务端的缓存中对应客户端预加载了大量用户可能会查询的结果,大大提高缓存的命中率,因此,对于服务端而言,大大将少了系统压力,并能显著提高接口响应速度。
进一步地,还包括:
服务端接收到确认查询指令后,依据对应的确认查询时间点从所述映射表中获取与其最接近的查询时间点;
服务端获取所述最接近的查询时间点对应的查询条件,将其作为最终查询条件。
由上述描述可知,能够依据映射表记录的时间点,快速确定最终查询条件,从而显著提高查询效率。
本发明提供的另一个技术方案为:
一种计算机可读存储介质,其上存储有计算机程序,所述程序在被处理器执行时,能够实现一种服务端节流的方法,其包含步骤:
服务端接收客户端上送的请求数据,所述请求数据包括对应当前时间点的查询条件和客户端的唯一标识符;
服务端建立以唯一标识符为key,以唯一标识符对应的各个查询条件及其查询时间点为value的映射表;
服务端返回最终查询条件对应的最终查询结果至客户端时,触发一个异步线程;
所述异步线程依据所述映射表,获取所述最终查询条件对应的查询时间段内的各个查询条件,并缓存其对应的各个查询结果。
进一步地,异步线程依据确认查询时间点和所述映射表的查询时间点,确定最终查询条件对应的查询时间段。
进一步地,所述服务端返回最终查询条件对应的最终查询结果至客户端,具体为:
服务端依据最终查询条件查询缓存,若无果,则查询数据库,并返回所述最终查询条件对应的最终查询结果至客户端。
进一步地,还包括:
服务端接收到确认查询指令后,依据对应的确认查询时间点从所述映射表中获取与其最接近的查询时间点;
服务端获取所述最接近的查询时间点对应的查询条件,将其作为最终查询条件。
请参照图2,本发明的实施例一为:
假设用户需要查询“林志勋”这个名字的数据,现有技术是通过调用查询接口,接口将从数据源中(比如数据库中)查询出满足条件的数据,并返回给客户端。
而本实施例则是通过以下流程来实现服务端得节流:
S1:服务端接收客户端上送的请求数据,所述请求数据包括对应当前时间点的查询条件和客户端的唯一标识符;
其中,每个客户端预先分配一与其唯一对应的标识符,如设备ID。客户端向服务端发起查询请求时,都需要带上当前时间点和自身的唯一标识符,格式可以是:时间戳+设备ID。
在一具体实例中,客户端将在用户输入查询条件的过程中,对应各个停顿点,获取对应的查询条件,并将一个停顿点对应的查询条件作为一个请求数据发送给服务端。此时,所述各个停顿点即对应查询条件的各个“当前时间点”。例如,用户在输入最终查询条件“林志勋”的过程中,可能存在三个输入停顿点,分别对应“林”、“林志”和“林志勋”;而客户端将在输入过程中,分别发送对应上述三个查询条件的请求数据。
在另一具体实例中,客户端将在用户输入查询条件的过程中,实时性地获取对应的查询条件,对应每一个“当前时间点”来获取“当前”的查询条件。一般情况下,也将先后获取“林”、“林志”和“林志勋”这三个查询条件,只是它们是按照时序来获取的,而非停顿点。
S2:服务端建立以唯一标识符为key,以唯一标识符对应的各个查询条件及其查询时间点为value的映射表;
具体而言,服务端在接收到客户端上送的请求数据后,依据其中的唯一标识符,将其对应的查询条件及其对应的查询时间点存储到缓存中的映射表中。若映射表中未保存当前客户端的唯一标识符的key,则新建;然后将对应的查询条件及其查询时间点作为对应的value进行存储。可见,所述映射表记载的是各个客户端对应的查询条件及其查询时间。
例如,客户端获取输入条件,假设依时序先后获取“林”、“林志”,以及“林志勋”这三个查询条件,并先后对应发送三个请求数据至服务端。服务端将根据客户端唯一标识,在本地内存(缓存)中进行存储,存储方式为:以唯一标识为key;value值为输入的查询条件以及记录的查询时间。
S3:服务端返回最终查询条件对应的最终查询结果至客户端时,触发一个异步线程;
具体而言,该步骤之前,还包括服务端依据映射表确定最终查询条件的步骤:
S31:服务端接收到客户端传递过来的确认查询指令后,依据其对应的确认查询时间点,从映射表中获取该客户端对应的与所述确认查询时间点最接近的查询时间点;然后,服务端获取所述最接近的查询时间点对应的查询条件,将其作为最终查询条件。
一般情况在,从开始查询输入的一定时间段内,比如1s或者2s甚至更久一些,都将完成最终查询条件的输入,此时,客户端将接收到一个确认查询指令,如回车键的触发。而后,服务端将执行最终查询条件确认规则。具体根据映射表对应该客户端的“value”所记录的最接近确认查询指令的查询时间点确定,即最新的查询时间点对应的查询条件。
比如,1.输入“林”、“林志”、“林志勋”则按照“林志勋”为最终查询条件查询;
2.输入“林”、“林志、“林志勋”,以及“林志”,则按照“林志”为最终查询条件查询;
3.输入“林”、“林志”、“林志勋”、“林德”、“林政”,以及“林政政”,则按照“林政政”为最终查询条件。
S32:服务端依据最终查询条件查询缓存,若无果,则查询数据库,并返回所述最终查询条件对应的最终查询结果至客户端。
每一次服务端进行查询时,都预先查询缓存层,比如redis集群,如果有查询到信息,则直接返回;如果查询无果,则去数据源中(比如数据库中)进行数据的查询,查询出结果中,再将查询结果写入缓存中。同时,还将触发一个异步通知消息供异步线程使用,最后执行查询结果的返回。
S4:异步线程依据所述映射表,获取所述最终查询条件对应的查询时间段内的各个查询条件,并缓存其对应的各个查询结果。
具体而言,当独立的异步线程收到异步通知消息后,将依据映射表,获取最终查询条件对应的查询时间段,这个查询时间段依据确认查询时间点和所述映射表的查询时间点来确定。比如,上一确认查询时间点至当前的确认查询时间点这个时间段即对应当前最终查询条件的查询时间段。
然后,获取查询时间段对应的各个查询条件,然后分别查询这几个查询条件,得到对应的查询结果,并缓存。
比如,最终查询条件为“林志勋”,则会异步查询“林”、“林志”和“林志勋”这3个数据的信息至缓存中。在每次查询数据信息之前,会预先查询缓存中是否存在该信息的缓存,如果存在,则不到数据源中进行查询,如果不存在,则查询数据源,并最终加载入缓存中。
通过本实施例,在服务端接口中,进行短时间内多次请求的合并,减少查询流量,同时,异步线程预先加载分词查询数据到缓存中,能显著加快下次查询条件的速度,提交接口效率。
本发明的实施例二为:
本实施例对应实施例一,提供一个具体运用场景:
一个很常见的场景,我们可能会在一个文本框中输入“林志勋”这个名字来查询相关人员的信息。
正常情况下,每次输入一个汉字,客户端都会调用服务端的一次接口查询数据,比如输入“林”,服务端返回姓林相关的人员出来,输入“林志”则出现林志相关的人员信息出来,最终输入“林志勋”则出现最终需要人员的信息出来。
本实施例中,在一定时间之内的输入条件,会在服务端中进行短暂的缓存,并预先根据客户端唯一标识,在服务端的本地内存中进行存储,根据唯一标识为key,value值为输入的查询条件以及记录的时间。
之后,根据查询条件及其记录时间来进行判断,取最新的记录时间的查询条件value作为最终查询条件来查询数据。比如:此时是收到3次请求,分别为“林”、“林志”和“林志勋”,则按照“林志勋”为最终查询条件查询。
知道了一定时间之内的最终查询条件,则根据“林志勋”进行缓存或者数据源的查询,查询完毕后,将只返回“林志勋”相关的信息回去。因为同一个客户端最终查询条件就是需要查询“林志勋”的相关信息。此时,客户端针对服务端的多次请求,服务端已合并请求,实际上只查询缓存或者数据源一次,就得到结果了,提高了效率。同时,在返回信息之前,还触发异步通知消息,通知异步线程进行处理。
此时,异步线程会根据最终查询条件“林志勋”,异步查询“林”、“林志”、“林志勋”这3个数据的信息至缓存中。因为外部查询人员可能后续还会查询与“林”相关的人员或者与“林志”相关的人员,在这边预先加载分词查询数据至缓存中,提高下次用户的查询效率。
实施例三
本实施例对应实施例一或实施例二,提供一种计算机可读存储介质,其上存储有计算机程序,所述程序在被处理器执行时,能够实现上述实施例一或实施例二任意一项实施例所述的一种服务端节流的方法所包含的步骤。具体的步骤流程在此不进行复述,详细请参阅实施例一或实施例二的记载。
综上所述,本发明提供的一种服务端节流的方法、存储介质,不仅能够提高命中率,提高查询响应效率;而且减少服务端系统的压力,提高了接口性能;进一步地,还具有高效确认最终查询条件的能力,更具实用性。
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等同变换,或直接或间接运用在相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (5)
1.一种服务端节流的方法,其特征在于,包括:
服务端接收客户端上送的请求数据,所述请求数据包括对应当前时间点的查询条件和客户端的唯一标识符;
服务端建立以唯一标识符为key,以唯一标识符对应的各个查询条件及其查询时间点为value的映射表;
服务端返回最终查询条件对应的最终查询结果至客户端时,触发一个异步线程;
所述异步线程依据所述映射表,获取所述最终查询条件对应的查询时间段内的各个查询条件,并缓存其对应的各个查询结果。
2.如权利要求1所述的一种服务端节流的方法,其特征在于,异步线程依据确认查询时间点和所述映射表的查询时间点,确定最终查询条件对应的查询时间段。
3.如权利要求1所述的一种服务端节流的方法,其特征在于,所述服务端返回最终查询条件对应的最终查询结果至客户端,具体为:
服务端依据最终查询条件查询缓存,若无果,则查询数据库,并返回所述最终查询条件对应的最终查询结果至客户端。
4.如权利要求1所述的一种服务端节流的方法,其特征在于,还包括:
服务端接收到确认查询指令后,依据对应的确认查询时间点从所述映射表中获取与其最接近的查询时间点;
服务端获取所述最接近的查询时间点对应的查询条件,将其作为最终查询条件。
5.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述程序在被处理器执行时,能够实现上述权利要求1-4任意一项所述的一种服务端节流的方法所包含的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911022527.3A CN110866034B (zh) | 2019-10-25 | 2019-10-25 | 服务端节流的方法、存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911022527.3A CN110866034B (zh) | 2019-10-25 | 2019-10-25 | 服务端节流的方法、存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110866034A true CN110866034A (zh) | 2020-03-06 |
CN110866034B CN110866034B (zh) | 2022-12-13 |
Family
ID=69652898
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911022527.3A Active CN110866034B (zh) | 2019-10-25 | 2019-10-25 | 服务端节流的方法、存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110866034B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103177027A (zh) * | 2011-12-23 | 2013-06-26 | 北京新媒传信科技有限公司 | 获取动态Feed索引的方法和系统 |
CN107025243A (zh) * | 2016-02-02 | 2017-08-08 | 北京神州泰岳软件股份有限公司 | 一种资源数据的查询方法、查询客户端和查询系统 |
US20180276217A1 (en) * | 2017-03-27 | 2018-09-27 | Liberation Distribution, Inc. | Resolving a query to a database |
CN110033280A (zh) * | 2019-03-08 | 2019-07-19 | 阿里巴巴集团控股有限公司 | 支付防抖方法及装置 |
-
2019
- 2019-10-25 CN CN201911022527.3A patent/CN110866034B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103177027A (zh) * | 2011-12-23 | 2013-06-26 | 北京新媒传信科技有限公司 | 获取动态Feed索引的方法和系统 |
CN107025243A (zh) * | 2016-02-02 | 2017-08-08 | 北京神州泰岳软件股份有限公司 | 一种资源数据的查询方法、查询客户端和查询系统 |
US20180276217A1 (en) * | 2017-03-27 | 2018-09-27 | Liberation Distribution, Inc. | Resolving a query to a database |
CN110033280A (zh) * | 2019-03-08 | 2019-07-19 | 阿里巴巴集团控股有限公司 | 支付防抖方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN110866034B (zh) | 2022-12-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9817858B2 (en) | Generating hash values | |
US6487641B1 (en) | Dynamic caches with miss tables | |
US9697253B2 (en) | Consistent client-side cache | |
WO2023093245A1 (zh) | 基于分布式文件系统的元数据查询方法、设备和存储介质 | |
US20080098041A1 (en) | Server supporting a consistent client-side cache | |
US20120310934A1 (en) | Historic View on Column Tables Using a History Table | |
US9183267B2 (en) | Linked databases | |
US8626779B2 (en) | Method and system for managing database | |
US9928178B1 (en) | Memory-efficient management of computer network resources | |
US20150142845A1 (en) | Smart database caching | |
US11567934B2 (en) | Consistent client-side caching for fine grained invalidations | |
CN106354732B (zh) | 一种支持并发协同的离线数据版本冲突解决方法 | |
CN115269631A (zh) | 数据查询方法、数据查询系统、设备及存储介质 | |
CN111090675B (zh) | 多入口数据缓存方法及存储介质 | |
US20040128328A1 (en) | Method and apparatus for relaxed transactional isolation in a client-server caching architecture | |
US10827035B2 (en) | Data uniqued by canonical URL for rest application | |
CN110866034B (zh) | 服务端节流的方法、存储介质 | |
US11210272B2 (en) | Low latency cache synchronization in distributed databases | |
KR102415155B1 (ko) | 데이터 검색 장치 및 방법 | |
US20090012951A1 (en) | System and method for efficient issuance of queries | |
US11550800B1 (en) | Low latency query processing and data retrieval at the edge | |
CN112181391A (zh) | 一种可动态扩展数据的方法及系统 | |
CN111259031A (zh) | 数据更新方法、装置、设备和存储介质 | |
CN111737298B (zh) | 基于分布式存储的缓存数据管控方法及装置 | |
US11113296B1 (en) | Metadata management for a transactional storage system |
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 |