查询数据服务的缓存方法、装置、电子设备及存储介质与流程

文档序号:30946152发布日期:2022-07-30 05:18阅读:90来源:国知局
查询数据服务的缓存方法、装置、电子设备及存储介质与流程

1.本发明涉及数据查询技术领域,具体涉及一种查询数据服务的缓存方法、装置、电子设备及存储介质。


背景技术:

2.现有的用户对业务数据的查询服务的处理方式是直接根据数据请求在数据服务中查询到相应的业务数据,然后返回给用户。这种方式的优点在于响应快,可以实时获取业务数据,用户体验高。
3.而在一些允许数据延迟、并且应用服务感知不到数据发生了变化的场景下,尤其是在查询第三方服务数据中,上述方式则占用太多的服务器资源,导致服务器处理性能严重下降,也不能很好的实时获取业务数据。


技术实现要素:

4.针对所述缺陷,本发明实施例公开了一种查询数据服务的缓存方法、装置、电子设备及存储介质,其可以在缓存中存储热点业务数据,用户的数据请求可直接通过缓存获取,节省服务器资源。
5.本发明实施例第一方面公开一种查询数据服务的缓存方法,所述方法包括:
6.接收用户的数据请求,根据所述数据请求查询缓存;
7.如果所述缓存中存储所述数据请求对应的业务数据,且所述业务数据在缓存中的过期剩余时间大于或等于更新阈值或者已标记异步执行,则立即响应所述数据请求;
8.如果所述缓存中存储所述数据请求对应的业务数据,所述业务数据在缓存中的过期剩余时间小于更新阈值,并且未标记异步执行,则触发异步更新缓存策略后再响应用户的数据请求;
9.如果所述缓存中未存储所述业务数据,则查询数据服务,把数据服务中对应于所述数据请求的业务数据更新到缓存中,再响应用户的数据请求。
10.作为较佳的实施例,在本发明实施例的第一方面中,所述触发异步更新缓存策略,包括:
11.将所述业务数据标记为异步执行,用以异步请求数据服务中的业务数据,对所述缓存中的所述业务数据进行更新,并修改更新后的业务数据的过期剩余时间,再取消所述更新后的业务数据的异步执行标记。
12.作为较佳的实施例,在本发明实施例的第一方面中,把数据服务中对应于所述数据请求的业务数据更新到缓存中,包括:
13.获取数据服务中对应于所述数据请求的业务数据,将所述业务数据同步更新到所述缓存中。
14.作为较佳的实施例,在本发明实施例的第一方面中,响应用户的数据请求,包括:
15.根据所述数据请求向用户返回相应的业务数据。
16.作为较佳的实施例,在本发明实施例的第一方面中,所述更新阈值为对应业务数据在缓存中设置的过期时间的1/n,其中n为大于等于2的整数。
17.作为较佳的实施例,在本发明实施例的第一方面中,所述更新阈值为缓存向数据服务发送的定时从数据服务中调取业务数据对所述缓存中相应的业务数据进行更新的时间间隔。
18.本发明实施例第二方面公开了查询数据服务的缓存装置,其包括:
19.接收单元,用于接收用户的数据请求,根据所述数据请求查询缓存;
20.第一判断单元,用于在所述缓存中存储所述数据请求对应的业务数据,且所述业务数据在缓存中的过期剩余时间大于或等于更新阈值或者已标记异步执行,则立即响应所述数据请求;
21.第二判断单元,用于在所述缓存中存储所述数据请求对应的业务数据,所述业务数据在缓存中的过期剩余时间小于更新阈值,并且未标记异步执行,则触发异步更新缓存策略后再响应用户的数据请求;
22.第三判断单元,用于在所述缓存中未存储所述业务数据,则查询数据服务,把数据服务中对应于所述数据请求的业务数据更新到缓存中,再响应用户的数据请求。
23.作为较佳的实施例,在本发明实施例的第二方面中,所述触发异步更新缓存策略,包括:
24.将所述业务数据标记为异步执行,用以异步请求数据服务中的业务数据,对所述缓存中的所述业务数据进行更新,并修改更新后的业务数据的过期剩余时间,再取消所述更新后的业务数据的异步执行标记。
25.本发明实施例第三方面公开一种电子设备,包括:存储有可执行程序代码的存储器;与所述存储器耦合的处理器;所述处理器调用所述存储器中存储的所述可执行程序代码,用于执行本发明实施例第一方面公开的一种查询数据服务的缓存方法。
26.本发明实施例第四方面公开一种计算机可读存储介质,其存储计算机程序,其中,所述计算机程序使得计算机执行本发明实施例第一方面公开的一种查询数据服务的缓存方法。
27.本发明实施例第五方面公开一种计算机程序产品,当所述计算机程序产品在计算机上运行时,使得所述计算机执行本发明实施例第一方面公开的一种查询数据服务的缓存方法。
28.本发明实施例第六方面公开一种应用发布平台,所述应用发布平台用于发布计算机程序产品,其中,当所述计算机程序产品在计算机上运行时,使得所述计算机执行本发明实施例第一方面公开的一种查询数据服务的缓存方法。
29.与现有技术相比,本发明实施例具有以下有益效果:
30.本发明实施例主要应用于允许一定的数据延迟,尤其适用于在查询第三方数据服务中的业务数据的允许存在一定的数据延迟的场景中,其通过设置热点缓存的方式,主要由业务数据在缓存中的过期剩余时间与更新阈值的比对来确定如何响应用户的数据请求,其一方面避免频繁访问第三方数据服务,节省服务器资源,另一方面业务数据的更新采用异步执行方式,应用服务感知不到数据的变化,提升用户体验。
附图说明
31.为了更清楚地说明本发明实施例中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
32.图1是本发明实施例公开的一种查询数据服务的缓存方法的流程示意图;
33.图2是本发明实施例公开的一种查询数据服务的缓存装置的结构示意图;
34.图3是本发明实施例公开的一种电子设备的结构示意图。
具体实施方式
35.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
36.需要说明的是,本发明的说明书和权利要求书中的术语“第一”、“第二”、“第三”、“第四”等是用于区别不同的对象,而不是用于描述特定顺序。本发明实施例的术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,示例性地,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
37.本发明实施例公开了一种查询数据服务的缓存方法、装置、电子设备及存储介质,其主要应用于在查询第三方数据服务中的业务数据的允许存在一定的数据延迟的场景中,通过设置热点缓存的方式,主要由业务数据在缓存中的过期剩余时间与更新阈值的比对来确定如何响应用户的数据请求,其一方面避免频繁访问第三方数据服务,节省服务器资源,另一方面业务数据的更新采用异步执行方式,应用服务感知不到数据的变化,提升用户体验,以下结合附图进行详细描述。
38.实施例一
39.请参阅图1,图1是本发明实施例公开的一种查询数据服务的缓存方法的流程示意图。如图1所示,该查询数据服务的缓存方法包括以下步骤:
40.s110、接收用户的数据请求,根据所述数据请求查询缓存。
41.数据请求为用户操作触发,例如用户通过其客户端输入或者选择相应的信息,例如业务数据基础信息等触发数据请求服务,服务器接收到该数据请求后,先查询缓存中是否存在该数据请求对应的业务数据,如果存在,则执行步骤s120或s130的操作,如果不存在,则执行步骤s140的操作。
42.在本发明较佳的实施例中,缓存中存储的均为热点业务数据,并为这些热点业务数据设置过期时间,当业务数据进入缓存中的时间(对缓存中的业务数据进行更新不在其范围内)时,开始倒计时,当该业务数据的过期剩余时间为0时,则从缓存中移除该业务数据,说明此时该业务数据不再属于热点业务数据。
43.热点业务数据的过期时间可以根据需要统一设置,例如均设置2个小时等,也可以为不同的热点业务数据设置不同的过期时间;当然,还可以根据热点业务数据的访问情况
自动调整或手动调整,例如当热点业务数据单位时间内的请求次数超过第一预设次数时,延长其过期时间,反之,当热点业务数据单位时间内的请求次数小于第二预设次数时,缩短其过期时间。
44.s120、如果所述缓存中存储所述数据请求对应的业务数据,且所述业务数据在缓存中的过期剩余时间大于或等于更新阈值或者已标记异步执行,则立即响应所述数据请求。
45.更新阈值为对缓存中的业务数据进行更新的时间间隔,如果业务数据的过期剩余时间大于或等于更新阈值时,说明还会存在至少一次对缓存中该业务数据异步更新的机会,如果业务数据已标记异步执行,也说明会对该业务数据进行一次更新,或者更新正在进行,则可立即响应该数据请求,即返回缓存中与数据请求对应的业务数据到用户端。
46.之所以在这种情况下立即响应所述数据请求,原因在于该业务数据并非在较短时间内从缓存中消失,并且还会异步更新,因此,直接返回给用户即可,可以保证该业务数据继续存在于缓存中。
47.更新阈值的设置可以根据需要设定,但是必须小于其对应的业务数据的过期时间,否则业务数据已过期,而该业务数据从未更新过,无法使后续用户得到最新的业务数据。一般地,更新阈值可以设置为其对应的业务数据的过期时间的1/n,n为大于等于2的正整数,优先n=4,如果n设置过小,则用户很可能获取不到较新的业务数据,如果n设置过大,则服务器会频繁访问第三方数据服务,增加了服务器的负担。
48.s130、如果所述缓存中存储所述数据请求对应的业务数据,所述业务数据在缓存中的过期剩余时间小于更新阈值,并且未标记异步执行,则触发异步更新缓存策略后再响应用户的数据请求。
49.与步骤s120相反,如果业务数据在缓存中的过期剩余时间小于更新阈值,并且未标记异步执行,说明该业务数据可能很快消失,而该业务数据仍可能被用户继续查询,在这种情况下,则先触发异步更新缓存的策略,在去响应用户的数据请求,此种情形,会存在一定的数据延迟,但是其可以对后续该用户或其他用户继续查询该业务数据提供一定的支持。
50.异步更新缓存策略的方法是:
51.将所述业务数据标记为异步执行(如果此时其他用户查询该业务数据,则对该用户的数据请求执行步骤s120),用以异步请求第三方数据服务中的业务数据,对所述缓存中的所述业务数据进行更新。
52.更新完成后,修改更新后的业务数据的过期剩余时间,将过期剩余时间修改成为其设定的过期时间,然后开始倒计时,同时,取消所述更新后的业务数据的异步执行标记。
53.上述过程完成后,再返回更新后的业务数据到用户端。
54.s140、如果所述缓存中未存储所述业务数据,则查询数据服务,把数据服务中对应于所述数据请求的业务数据更新到缓存中,再响应用户的数据请求。
55.如果数据请求对应的业务数据已过期或者并未被设置为热点业务数据,即不在缓存中存储过,则实现过程的第一步与现有技术类似,直接在第三方数据服务中查询得到该数据请求对应的业务数据,然后并非直接发送给用户,而是执行第二步,将该业务数据同步更新到缓存中,并为该业务数据设置过期时间,以及开始倒计时,然后再响应用户的数据请
求,即将同步更新到缓存中的业务数据返回至用户端。
56.此种情形下,后续该用户或其他用户在发出对该业务数据的数据请求时,则可以直接从缓存中获取业务数据,而并不需要再访问第三方数据服务,大大节省了服务器资源。
57.在一些其他的场景中,如果缓存中的业务数据过多时,无法存储新的业务数据,或者无法对存储的业务数据进行更新时,则可以根据预设规则移除部分业务数据,示例性地,可以选择较长时间未被查询或/和单位时间内被查询的平均次数小于第三预设次数时,则可以将该业务数据进行移除,从而方便存储新的业务数据或者对其他业务数据进行更新的需要。
58.实施例二
59.请参阅图2,图2是本发明实施例公开的一种查询数据服务的缓存装置的结构示意图。如图2所示,该查询数据服务的缓存装置包括:
60.接收单元210,用于接收用户的数据请求,根据所述数据请求查询缓存;
61.第一判断单元220,用于在所述缓存中存储所述数据请求对应的业务数据,且所述业务数据在缓存中的过期剩余时间大于或等于更新阈值或者已标记异步执行,则立即响应所述数据请求;
62.第二判断单元230,用于在所述缓存中存储所述数据请求对应的业务数据,所述业务数据在缓存中的过期剩余时间小于更新阈值,并且未标记异步执行,则触发异步更新缓存策略后再响应用户的数据请求;
63.第三判断单元240,用于在所述缓存中未存储所述业务数据,则查询数据服务,把数据服务中对应于所述数据请求的业务数据更新到缓存中,再响应用户的数据请求。
64.优选地,所述触发异步更新缓存策略,包括:
65.将所述业务数据标记为异步执行,用以异步请求数据服务中的业务数据,对所述缓存中的所述业务数据进行更新,并修改更新后的业务数据的过期剩余时间,再取消所述更新后的业务数据的异步执行标记。
66.优选地,把数据服务中对应于所述数据请求的业务数据更新到缓存中,包括:
67.获取数据服务中对应于所述数据请求的业务数据,将所述业务数据同步更新到所述缓存中。
68.优选地,响应用户的数据请求,包括:
69.根据所述数据请求向用户返回相应的业务数据。
70.优选地,所述更新阈值为对应业务数据在缓存中设置的过期时间的1/n,其中n为大于等于2的整数。
71.优选地,所述更新阈值为缓存向数据服务发送的定时从数据服务中调取业务数据对所述缓存中相应的业务数据进行更新的时间间隔。
72.实施例三
73.请参阅图3,图3是本发明实施例公开的一种电子设备的结构示意图。电子设备可以是服务器等,服务器可以是物理服务器,也可以是云服务器。如图3所示,该电子设备可以包括:
74.存储有可执行程序代码的存储器310;
75.与存储器310耦合的处理器320;
76.其中,处理器320调用存储器310中存储的可执行程序代码,执行实施例一中的一种查询数据服务的缓存方法中的部分或全部步骤。
77.本发明实施例公开一种计算机可读存储介质,其存储计算机程序,其中,该计算机程序使得计算机执行实施例一中的一种查询数据服务的缓存方法中的部分或全部步骤。
78.本发明实施例还公开一种计算机程序产品,其中,当计算机程序产品在计算机上运行时,使得计算机执行实施例一中的一种查询数据服务的缓存方法中的部分或全部步骤。
79.本发明实施例还公开一种应用发布平台,其中,应用发布平台用于发布计算机程序产品,其中,当计算机程序产品在计算机上运行时,使得计算机执行实施例一中的一种查询数据服务的缓存方法中的部分或全部步骤。
80.在本发明的各种实施例中,应理解,所述各过程的序号的大小并不意味着执行顺序的必然先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
81.所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可位于一个地方,或者也可以分布到多个网络单元上。可根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。
82.另外,在本发明各实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。所述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
83.所述集成的单元若以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可获取的存储器中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或者部分,可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干请求用以使得一台计算机设备(可以为个人计算机、服务器或者网络设备等,具体可以是计算机设备中的处理器)执行本发明的各个实施例所述方法的部分或全部步骤。
84.在本发明所提供的实施例中,应理解,“与a对应的b”表示b与a相关联,根据a可以确定b。但还应理解,根据a确定b并不意味着仅仅根据a确定b,还可以根据a和/或其他信息确定b。
85.本领域普通技术人员可以理解所述实施例的各种方法中的部分或全部步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质包括只读存储器(read-only memory,rom)、随机存储器(random access memory,ram)、可编程只读存储器(programmable read-only memory,prom)、可擦除可编程只读存储器(erasable programmable read-only memory,eprom)、一次可编程只读存储器(one-time programmable read-only memory,otprom)、电子抹除式可复写只读存储器(electrically-erasable programmable read-only memory,eeprom)、只读光盘(compact disc read-only memory,cd-rom)或其他光盘存储器、磁盘存储器、磁带存储器、或者能够用于携带或存储数据的计算机可读的任何其他介质。
86.以上对本发明实施例公开的一种查询数据服务的缓存方法、装置、电子设备及存储介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,
以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1