缓存处理方法、装置、计算机设备和存储介质
技术领域
本发明涉及计算机技术领域,特别是涉及一种缓存处理方法、装置、计算机设备和存储介质。
背景技术
随着计算机技术的飞速发展,越来越多的信息都不采用纸本保存,而是通过无纸化的方式存储在数据库,用户可以从数据库中查询所需要的信息。
然而,由于数据库资源是有限的,大量的信息查询会造成数据库的压力过大。所以,可以通过对数据库中的信息进行缓存的方式,来分担数据库的压力。
传统方法中,终端向服务器发送请求,服务器从数据库中拉取对应的信息后会将拉取的信息进行缓存,这样一来,凡是经过服务器拉取的信息都会被服务器缓存,就容易造成缓存信息量过大,导致缓存压力过大。
发明内容
基于此,有必要针对目前缓存压力过大的技术问题,提供一种缓存处理方法、装置、计算机设备和存储介质。
一种缓存处理方法,所述方法包括:
解析所接收的信息查询请求,获取所述信息查询请求中携带的请求标识;
从缓存中查找是否存在所述请求标识;
当缓存中不存在所述请求标识时,执行所述信息查询请求以从数据库中查询相应的信息;
当执行所述信息查询请求所经历的时长超过预设时长阈值时,则
将包括所述请求标识的所述信息查询请求与查询到的所述信息进行对应缓存,并返回查询到的所述信息。
在其中一个实施例中,所述将包括所述请求标识的所述信息查询请求与查询到的所述信息进行对应缓存包括:
将所述信息查询请求转换为可缓存格式;
将转换为可缓存格式的信息查询请求和查询到的所述信息进行对应缓存;
其中,所述可缓存格式的信息查询请求中包括唯一的所述请求标识。
在其中一个实施例中,所述解析所接收的信息查询请求,获取所述信息查询请求中携带的请求标识包括:
接收并解析终端发送的信息查询请求,获取所述信息查询请求中携带的请求标识;
所述当执行所述信息查询请求所经历的时长超过预设时长阈值时,则将包括所述请求标识的所述信息查询请求与查询到的所述信息进行对应缓存,并返回查询到的所述信息包括:
通过拦截器拦截向所述终端返回的从数据库中查询到的所述信息;
获取执行所述信息查询请求所经历的时长;
当所述所经历的时长超过预设时长阈值时,则将包括所述请求标识的所述信息查询请求与拦截的所述信息进行对应缓存,并通知所述拦截器将拦截的所述信息发送至所述终端。
在其中一个实施例中,所述方法还包括:
监测数据库中与缓存的所述信息对应的信息是否发生更新;
当数据库中与缓存的所述信息对应的信息发生更新时,则
将与缓存的所述信息所对应缓存的所述信息查询请求反解析为可执行的信息查询请求;
执行可执行的所述信息查询请求,从数据库重新获取相应的信息;
根据重新获取的信息,对与所述信息查询请求对应缓存的信息进行更新处理。
在其中一个实施例中,所述根据重新获取的信息,对与所述信息查询请求对应缓存的信息进行更新处理包括:
获取从开始执行可执行的所述信息查询请求起至重新获取到相应所述信息时,所经历的重新获取时长;
当所述重新获取时长超过所述预设时长阈值时,则将缓存中与所述信息查询请求对应缓存的信息更新为所述重新获取的信息。
在其中一个实施例中,所述方法还包括:
针对缓存的所述信息查询请求,赋予相应的缓存有效时长;
当超过所述缓存有效时长时,将缓存中相应的所述信息查询请求,以及与所述信息查询请求对应缓存的信息删除。
一种缓存处理装置,所述装置包括:
请求解析模块,用于解析所接收的信息查询请求,获取所述信息查询请求中携带的请求标识;
请求标识查找模块,用于从缓存中查找是否存在所述请求标识;
信息获取模块,用于当缓存中不存在所述请求标识时,执行所述信息查询请求以从数据库中查询相应的信息;
缓存模块,用于当执行所述信息查询请求所经历的时长超过预设时长阈值时,则将包括所述请求标识的所述信息查询请求与查询到的所述信息进行对应缓存,并返回查询到的所述信息。
在其中一个实施例中,所述装置还包括:
更新监测模块,用于监测数据库中与缓存的所述信息对应的信息是否发生更新;
请求反解析模块,用于当所述更新监测模块监测到数据库中与缓存的所述信息对应的信息发生更新时,则将与缓存的所述信息所对应缓存的所述信息查询请求反解析为可执行的信息查询请求;
缓存更新模块,用于执行可执行的所述信息查询请求,从数据库重新获取相应的信息;根据重新获取的信息,对与所述信息查询请求对应缓存的信息进行更新处理。
一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机可读指令,所述计算机可读指令被所述处理器执行时,使得所述处理器执行以下步骤:
解析所接收的信息查询请求,获取所述信息查询请求中携带的请求标识;
从缓存中查找是否存在所述请求标识;
当缓存中不存在所述请求标识时,执行所述信息查询请求以从数据库中查询相应的信息;
当执行所述信息查询请求所经历的时长超过预设时长阈值时,则
将包括所述请求标识的所述信息查询请求与查询到的所述信息进行对应缓存,并返回查询到的所述信息。
一种存储有计算机可读指令的存储介质,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行以下步骤:
解析所接收的信息查询请求,获取所述信息查询请求中携带的请求标识;
从缓存中查找是否存在所述请求标识;
当缓存中不存在所述请求标识时,执行所述信息查询请求以从数据库中查询相应的信息;
当执行所述信息查询请求所经历的时长超过预设时长阈值时,则
将包括所述请求标识的所述信息查询请求与查询到的所述信息进行对应缓存,并返回查询到的所述信息。
上述缓存处理方法、装置、计算机设备和存储介质,在执行信息查询请求所经历的时长超过预设时长阈值时,再将查询到的信息进行缓存,而并不是将查询到的所有信息一并缓存,一定程度上减少了缓存的信息量,从而减轻了缓存压力。
附图说明
图1为一个实施例中缓存处理方法的应用环境图;
图2为一个实施例中计算机设备的内部结构示意图;
图3为一个实施例中缓存处理方法的流程示意图;
图4为一个实施例中缓存处理步骤的流程示意图;
图5为一个实施例中缓存更新步骤的流程示意图;
图6为一个实施例中缓存处理装置的框图;
图7为另一个实施例中缓存处理装置的框图;
图8为又一个实施例中缓存处理装置的框图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
图1为一个实施例中缓存处理方法的应用环境图。参照图1,该应用环境包括通过网络连接的终端110和服务器120。其中,终端110通过网络向服务器120发送信息查询请求。服务器120解析所接收的信息查询请求,获取信息查询请求中携带的请求标识。服务器120从缓存中查找是否存在请求标识,当缓存中不存在请求标识时,执行信息查询请求以从数据库中查询相应的信息,当执行信息查询请求所经历的时长超过预设时长阈值时,则将包括请求标识的信息查询请求与查询到的信息进行对应缓存,并返回查询到的信息至终端110。
图2为一个实施例中计算机设备的内部结构示意图。该计算机设备可以是图1中的服务器120,服务器120可以用独立的服务器或是多个物理服务器组成的服务器集群来实现。参照图2,该计算机设备包括通过系统总线连接的处理器、非易失性存储介质、内存储器和网络接口。其中,计算机设备的非易失性存储介质存储有操作系统,还可以存储有计算机可读指令,该计算机可读指令被处理器执行时,可使得处理器实现一种缓存处理方法。该处理器用于提供计算和控制能力,支撑整个计算机设备的运行。计算机设备中的内存储器中可储存有计算机可读指令,该计算机可读指令被所述处理器执行时,可使得所述处理器执行一种缓存处理方法。网络接口用于连接网络进行通信。
本领域技术人员可以理解,图2中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
如图3所示,在一个实施例中,提供了一种缓存处理方法。本实施例主要以该方法应用于上述图2中的计算机设备来举例说明。参照图3,该缓存处理方法具体包括如下步骤:
S302,解析所接收的信息查询请求,获取信息查询请求中携带的请求标识。
其中,请求标识用于唯一标识所对应的信息查询请求。
在一个实施例中,请求标识包括请求事项标识。请求事项,是指所请求要做的事项,比如获取基本个人信息、获取用户访问量或获取网页内容等都属于请求事项。请求事项标识,用于唯一标识所请求查询的事项。信息查询请求所请求查询的事项不同,所对应的请求事项标识不同,则请求标识也不同。
比如,请求查询网站A的信息与请求查询网站B的信息就属于不同的请求事项,所对应的请求事项标识就不同,则请求标识也不同。又比如,请求查询网站A中不同类型的信息(比如,“用户的基本个人信息”,与“用户数量”就属于不同类型的信息),则就属于不同的请求事项,所对应的请求事项标识就不同,则请求标识也不同。
具体地,计算机设备可以对接收的信息查询请求进行解析,并从解析的信息查询请求中获取所携带的请求标识。其中,所接收的信息查询请求可以是终端发送的信息查询请求也可以是其他服务器发送的信息查询请求,这里对发送信息查询请求的对象不做限定。
S304,从缓存中查找是否存在请求标识。
其中,缓存,是将从数据库中获取的信息进行存放的存储区域,通过缓存可以降低数据库的压力,同时可以提高对信息的访问或查询速度。
具体地,计算机设备可以将所获取的请求标识与缓存中存储的信息进行匹配,以查找是否存在该请求标识。在一个实施例中,计算机设备可以从分布式缓存服务器集群中,获取与该信息查询请求对应的缓存服务器,然后从该缓存服务器中查找是否存在该获取的请求标识。在一个实施例中,计算机设备可以根据发起该信息查询请求的终端与分布式缓存服务器集群中各缓存服务器的距离远近,从分布式缓存服务器集群中,选取距离最近的缓存服务器作为与该信息查询请求对应的缓存服务器。
S306,当缓存中不存在请求标识时,执行信息查询请求以从数据库中查询相应的信息。
具体地,当缓存中不存在该请求标识时,计算机设备可以执行该信息查询请求,调用数据库接口,以从数据库中获取相应的信息。
在一个实施例中,计算机设备是将包括请求标识的信息查询请求以及与该信息查询请求相应的信息进行对应缓存的。其中,与该信息查询请求相应的信息,是指执行该信息查询请求可以获取到的信息。比如,请求标识ID_001用于唯一标识公告信息查询请求,执行该公告信息查询请求可以获取到的信息包括具体的公告内容,则可以将包括ID_001的公告信息查询请求与该具体的公告内容进行对应缓存。当缓存中存在该请求标识时,则可以直接获取与该请求标识对应缓存的所请求查询的信息,比如,可以直接获取与请求标识ID_001对应缓存的具体公告内容。
S308,当执行信息查询请求所经历的时长超过预设时长阈值时,则将包括请求标识的信息查询请求与查询到的信息进行对应缓存,并返回查询到的信息。
其中,执行信息查询请求所经历的时长,是指开始执行该信息查询请求起至从数据库中查询到相应的信息(即接收到数据库返回的相应信息)这个过程中所经历的时长。比如,开始执行信息查询请求的时间为t1,接收到数据库返回的相应信息的时间为t2,则执行信息查询请求所经历的时长为t2-t1。
具体地,计算机设备可以检测执行信息查询请求所经历的时长,并将检测的所经历的时长与预设时长阈值进行比对,当执行信息查询请求所经历的时长超过预设时长阈值时,将包括请求标识的信息查询请求与查询到的信息进行对应缓存,并返回查询到的信息。在一个实施例中,当执行信息查询请求所经历的时长不超过预设时长阈值时,则说明该执行信息查询请求从数据库中获取相应信息的速度比较快,对数据库造成的压力就会比较小,则可以直接将查询到的信息返回,而不用进行缓存。
在一个实施例中,计算机设备可以将包括请求标识的信息查询请求与查询到的信息发送至相应的缓存服务器进行缓存,并将查询到的信息返回至终端。可以理解,在其它实施例中,计算机设备也可以将包括请求标识的信息查询请求与查询到的信息在本地进行缓存,并将查询到的信息返回至终端。
上述缓存处理方法,在执行信息查询请求所经历的时长超过预设时长阈值时,再将查询到的信息进行缓存,而并不是将查询到的所有信息一并缓存,一定程度上减少了缓存的信息量,从而减轻了缓存溢出的问题。
此外,将包括请求标识的信息查询请求和所请求查询的信息进行对应缓存,在接收到信息查询请求时判断缓存中是否有相应的请求标识,当不存在请求标识则说明缓存中没有缓存该信息查询请求,则就说明没有缓存该查询请求所请求查询的信息,即通过判断缓存中是否有相应的请求标识,来确定是否缓存有所请求查询的信息,而不需要对缓存中的要请求的信息本身进行较多的分析和比对,提高了信息查询速度。
在一个实施例中,将包括请求标识的信息查询请求与查询到的信息进行对应缓存包括:将信息查询请求转换为可缓存格式;将转换为可缓存格式的信息查询请求和查询到的信息进行对应缓存;其中,可缓存格式的信息查询请求中包括唯一的请求标识。
其中,可缓存格式,是指符合缓存的文件格式,比如json格式。可以理解,所接收的信息查询请求为可执行的格式,该可执行的信息查询请求的格式可能不符合缓存的需求,所以计算机设备可以将该可执行的信息查询请求转换为可缓存格式。需要说明的是,如果接收的信息查询请求本身满足缓存的格式需求,则可以不对该信息查询请求进行格式转换。
进一步地,计算机设备可以将转换为可缓存格式的信息查询请求和查询到的信息进行对应缓存。可以理解,由于所接收的信息查询请求中包括请求标识,则进行格式转换后的可缓存格式的信息查询请求中仍然包括唯一的请求标识。
在一个实施例中,步骤S302包括:接收并解析终端发送的信息查询请求,获取信息查询请求中携带的请求标识。
具体地,用户可以通过终端进行信息查询操作,终端响应于该操作,生成信息查询请求发送至计算机设备,计算机设备接收到终端发送的信息查询请求后,可以解析所接收的该信息查询请求,并从解析后的信息查询请求中提取所携带的请求标识。
本实施例中,如图4所示,步骤S308(简称缓存处理步骤),具体包括以下步骤:
S402,通过拦截器拦截向终端返回的从数据库中查询到的信息。
具体地,计算机设备在从数据库中查询到与该信息查询请求相应的信息后,可以将该查询到的信息返回至终端,拦截器可以拦截该向终端返回的信息。
S404,获取执行信息查询请求所经历的时长。
其中,执行信息查询请求所经历的时长,是指开始执行该信息查询请求起至从数据库中查询到相应的信息(即接收到数据库返回的相应信息)这个过程中所经历的时长。
在一个实施例中,计算机设备可以记录开始执行该信息查询请求的时间点,并在从数据库中查询到相应的信息时记录下相应时间点,根据两个时间点的差值得到执行该信息查询请求所经历的时长。比如,开始执行信息查询请求的时间点为t1,接收到数据库返回的相应信息的时间点为t2,则执行信息查询请求所经历的时长为t2-t1。
在另一个实施例中,计算机设备也可以从开始执行该信息查询请求时触发计时器开始计时,并在从数据库中查询到相应的信息时触发计时器停止计时,将计时器的计时时长作为执行该信息查询请求所经历的时长。
S406,当所经历的时长超过预设时长阈值时,则将包括请求标识的信息查询请求与拦截的信息进行对应缓存,并通知拦截器将拦截的信息发送至终端。
具体地,计算机设备中预先存储了预设时长阈值,并将获取的所经历的时长与预设时长阈值进行比对,当执行信息查询请求所经历的时长超过预设时长阈值时,将包括请求标识的信息查询请求与查询到的信息进行对应缓存。进一步地,计算机设备可以通知拦截器将拦截的信息发送至终端。
可以理解,当所经历的时长不超过预设时长阈值时,则直接通知拦截器将拦截的信息发送至终端。
上述实施例中,不用对用于实现请求执行及信息返回的程序本身进行变动,而是通过拦截器拦截返回的信息,将满足缓存条件的信息和相应的信息查询请求进行对应缓存,并通知拦截器将拦截的信息发送至终端。在实现信息缓存的时,相当于是对原有用于请求执行和信息返回的程序透明的,避免了对原有用于请求执行和信息返回的程序的变动,而对原有用于请求执行和信息返回的程序进行变动,则需要重新对该程序的其它功能进行全面测试、比较繁复。因此,本案通过拦截器拦截的方式,实现信息缓存,提高了信息缓存功能实现的便捷性。
在一个实施例中,如图5所示,该方法还包括缓存更新步骤,具体包括以下步骤:
S502,监测数据库中与缓存的信息对应的信息是否发生更新。
其中,数据库中与缓存的信息对应的信息,是与缓存的信息一样的、且存储在数据库中的信息。可以理解,缓存的信息是从数据库中查询到的并进行缓存的信息,所以数据库中存储有与该缓存的信息一样的信息,即数据库中存储有该缓存的信息对应的信息。
在一个实施例中,计算机设备可以通过判断是否接收到数据库发送的信息更新通知来判断与缓存的信息对应的信息是否发生更新。计算机设备可以在将查询到的信息进行缓存时,通知数据库并使数据库对该信息进行缓存标记,当数据库中具有缓存标记的信息发生更新时,数据库则可以发送信息更新通知至计算机设备。计算机设备检测到该信息更新通知,则可以判定与缓存的信息对应的信息发生更新。
在另一个实施例中,计算机设备还可以监测是否接收到与缓存的信息更新有关的操作请求,当接收并执行与缓存的信息更新有关的操作请求时,则可以判定数据库中与缓存的信息对应的信息发生更新。与缓存的信息更新有关的操作请求包括对信息进行的修改、删除或新增等操作请求。
S504,当数据库中与缓存的信息对应的信息发生更新时,则将与缓存的信息所对应缓存的信息查询请求反解析为可执行的信息查询请求。
其中,可执行的信息查询请求,是指可以被执行以获取相应要查询的信息的请求。
具体地,当数据库中与缓存的信息对应的信息发生更新时,计算机设备可以从缓存中查找与该缓存的信息对应缓存的信息查询请求,并将查找到的可缓存格式的信息查询请求进行反解析处理,重新生成可执行的信息查询请求。
S506,执行可执行的信息查询请求,从数据库重新获取相应的信息。
具体地,计算机设备可以执行重新生成的可执行的信息查询请求,并调用数据库接口,从数据库中重新获取与该信息查询请求相应的信息。
S508,根据重新获取的信息,对与信息查询请求对应缓存的信息进行更新处理。
在一个实施例中,计算机设备可以将缓存中与该信息查询请求对应缓存的信息直接更新为重新获取的信息。
在另一个实施例中,根据重新获取的信息,对与所述信息查询请求对应缓存的信息进行更新处理包括:获取从开始执行可执行的信息查询请求起至重新获取到相应信息时,所经历的重新获取时长;当重新获取时长超过预设时长阈值时,则将缓存中与信息查询请求对应缓存的信息更新为重新获取的信息。
其中,重新获取时长,是指重新获取与可执行的信息查询请求对应的信息所经历的时长。具体地,重新获取时长,可以是指执行该可执行的信息查询请求开始至重新获取到相应信息这个过程所经历的时长。
在一个实施例中,计算机设备可以记录开始执行该可执行的信息查询请求的时间点,并在从数据库中重新获取到相应的信息时记录下相应时间点,根据两个时间点的差值得到重新获取时长。比如,开始执行该可执行的信息查询请求的时间点为t1,接收到数据库返回的重新获取到相应的信息的时间点为t2,则重新获取时长为t2-t1。
在另一个实施例中,计算机设备也可以从开始执行该可执行的信息查询请求时触发计时器开始计时,并在从数据库中重新获取到相应的信息时触发计时器停止计时,将计时器的计时时长作为重新获取时长。
进一步地,计算机设备中存储了预设时长阈值,计算机设备可以将重新获取时长与预设时长阈值比对,当重新获取时长超过预设时长阈值时,则将缓存中与信息查询请求对应缓存的信息更新为重新获取的信息。
在一个实施例中,当重新获取时长不超过预设时长阈值时,则可以将缓存中该信息查询请求及对应缓存的信息删除。可以理解,当重新获取时长不超过预设时长阈值时,则说明该执行信息查询请求从数据库中获取相应信息的速度比较快,对数据库造成的压力就会比较小,则不用缓存也不会对数据库造成压力过大的影响,因此可以删除所缓存的该信息查询请求及对应缓存的信息,以避免对缓存空间的不必要占用,提高缓存空间的有效利用率。
上述实施例中,当缓存的信息在数据库中的相应信息发生更新时,将与该信息对应缓存的信息查询请求反解析为可执行的请求,以重新获取相应的信息并进行缓存更新处理,避免了人工手动进行获取更新信息并缓存的操作,提高了缓存更新的效率。
在一个实施例中,该方法还包括:针对缓存的所述信息查询请求,赋予相应的缓存有效时长;当达到所述缓存有效时长时,将缓存中相应的所述信息查询请求,以及与所述信息查询请求对应缓存的信息删除。
其中,缓存有效时长,是被缓存的数据在缓存中处于有效状态的时间长度。比如,信息查询请求A的缓存有效时长为3周,则被缓存的信息查询请求A从被缓存开始的3周内处于有效状态。
具体地,计算机设备在将信息查询请求和相信的信息进行对应缓存时,可以将缓存的信息查询请求赋予相应的缓存有效时长。计算机设备可以监测缓存的信息查询请求是否超过被赋予的相应缓存有效时长,当达到缓存有效时长时,将缓存中相应的信息查询请求,以及与信息查询请求对应缓存的信息删除。比如,缓存有效时长为3周,则当信息查询请求A的缓存时间超过3周,则将缓存中的信息查询请求A删除,以及将与信息查询请求A对应缓存的信息删除。
在一个实施例中,当将缓存的信息查询请求反解析为可执行的信息查询请求以重新获取相应的信息,并根据重新获取的信息更新相应缓存的信息之后,可以对该信息查询请求的缓存时效时长的已用时长归零。可以对活跃的信息查询请求自动进行缓存有效时长调整,避免固定不变的缓存有效时长造成对活跃的信息查询请求及对应缓存的信息的误删除。
比如,信息查询请求A的缓存有效时长为3周,当缓存有效时长已用时长为1周,剩余2周时,将该信息查询请求A反解析为可执行信息查询请求以重新获取相应的信息,并根据重新获取的信息更新相应缓存的信息时,则将该信息查询请求A的缓存有效时长的已有1周时长归零,即为该信息查询请求A的缓存有效时长重新赋值为3周。
上述实施例中,通过赋予缓存的信息查询请求相应的缓存有效时长,当达到该缓存有效时长时,可以自动的将该信息查询请求及对应缓存的相应信息进行删除,一定程度上避免了不必要的缓存占用。
如图6所示,在一个实施例中,提供了一种缓存处理装置600,该装置600包括:请求解析模块602、请求标识查找模块604、信息获取模块606以及缓存模块608,其中:
请求解析模块602,用于解析所接收的信息查询请求,获取所述信息查询请求中携带的请求标识。
请求标识查找模块604,用于从缓存中查找是否存在所述请求标识。
信息获取模块606,用于当缓存中不存在所述请求标识时,执行所述信息查询请求以从数据库中查询相应的信息。
缓存模块608,用于当执行所述信息查询请求所经历的时长超过预设时长阈值时,则将包括所述请求标识的所述信息查询请求与查询到的所述信息进行对应缓存,并返回查询到的所述信息。
在一个实施例中,缓存模块608还用于将信息查询请求转换为可缓存格式;将转换为可缓存格式的信息查询请求和查询到的信息进行对应缓存;其中,可缓存格式的信息查询请求中包括唯一的请求标识。
在一个实施例中,请求解析模块602还用于接收并解析终端发送的信息查询请求,获取信息查询请求中携带的请求标识。
缓存模块608还用于通过拦截器拦截向终端返回的从数据库中查询到的信息;获取执行信息查询请求所经历的时长;当所经历的时长超过预设时长阈值时,则将包括请求标识的信息查询请求与拦截的信息进行对应缓存,并通知拦截器将拦截的信息发送至终端。
如图7所示,在一个实施例中,该装置600还包括:
更新监测模块610,用于监测数据库中与缓存的信息对应的信息是否发生更新。
请求反解析模块612,用于当更新监测模块监测到数据库中与缓存的信息对应的信息发生更新时,则将与缓存的信息所对应缓存的信息查询请求反解析为可执行的信息查询请求。
缓存更新模块614,用于执行可执行的信息查询请求,从数据库重新获取相应的信息;根据重新获取的信息,对与信息查询请求对应缓存的信息进行更新处理。
在一个实施例中,缓存更新模块614还用于获取从开始执行可执行的信息查询请求起至重新获取到相应信息时,所经历的重新获取时长;当重新获取时长超过预设时长阈值时,则将缓存中与信息查询请求对应缓存的信息更新为重新获取的信息。
如图8所示,在一个实施例中,该装置600还包括:
有效时长计时模块616,用于针对缓存的信息查询请求,赋予相应的缓存有效时长;当超过缓存有效时长时,将缓存中相应的信息查询请求,以及与信息查询请求对应缓存的信息删除。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机可读指令,计算机可读指令被处理器执行时,使得处理器执行如下步骤:解析所接收的信息查询请求,获取所述信息查询请求中携带的请求标识;从缓存中查找是否存在所述请求标识;当缓存中不存在所述请求标识时,执行所述信息查询请求以从数据库中查询相应的信息;当执行所述信息查询请求所经历的时长超过预设时长阈值时,则将包括所述请求标识的所述信息查询请求与查询到的所述信息进行对应缓存,并返回查询到的所述信息。
在一个实施例中,所述将包括所述请求标识的所述信息查询请求与查询到的所述信息进行对应缓存包括:将所述信息查询请求转换为可缓存格式;将转换为可缓存格式的信息查询请求和查询到的所述信息进行对应缓存;其中,所述可缓存格式的信息查询请求中包括唯一的所述请求标识。
在一个实施例中,所述解析所接收的信息查询请求,获取所述信息查询请求中携带的请求标识包括:接收并解析终端发送的信息查询请求,获取所述信息查询请求中携带的请求标识。所述当执行所述信息查询请求所经历的时长超过预设时长阈值时,则将包括所述请求标识的所述信息查询请求与查询到的所述信息进行对应缓存,并返回查询到的所述信息包括:通过拦截器拦截向所述终端返回的从数据库中查询到的所述信息;获取执行所述信息查询请求所经历的时长;当所述所经历的时长超过预设时长阈值时,则将包括所述请求标识的所述信息查询请求与拦截的所述信息进行对应缓存,并通知所述拦截器将拦截的所述信息发送至所述终端。
在一个实施例中,计算机可读指令还使得处理器执行以下步骤:监测数据库中与缓存的所述信息对应的信息是否发生更新;当数据库中与缓存的所述信息对应的信息发生更新时,则将与缓存的所述信息所对应缓存的所述信息查询请求反解析为可执行的信息查询请求;执行可执行的所述信息查询请求,从数据库重新获取相应的信息;根据重新获取的信息,对与所述信息查询请求对应缓存的信息进行更新处理。
在一个实施例中,所述根据重新获取的信息,对与所述信息查询请求对应缓存的信息进行更新处理包括:获取从开始执行可执行的所述信息查询请求起至重新获取到相应所述信息时,所经历的重新获取时长;当所述重新获取时长超过所述预设时长阈值时,则将缓存中与所述信息查询请求对应缓存的信息更新为所述重新获取的信息。
在一个实施例中,计算机可读指令还使得处理器执行以下步骤:针对缓存的所述信息查询请求,赋予相应的缓存有效时长;当超过所述缓存有效时长时,将缓存中相应的所述信息查询请求,以及与所述信息查询请求对应缓存的信息删除。
在一个实施例中,提供了一种存储有计算机可读指令的存储介质,计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行如下步骤:解析所接收的信息查询请求,获取所述信息查询请求中携带的请求标识;从缓存中查找是否存在所述请求标识;当缓存中不存在所述请求标识时,执行所述信息查询请求以从数据库中查询相应的信息;当执行所述信息查询请求所经历的时长超过预设时长阈值时,则将包括所述请求标识的所述信息查询请求与查询到的所述信息进行对应缓存,并返回查询到的所述信息。
在一个实施例中,所述将包括所述请求标识的所述信息查询请求与查询到的所述信息进行对应缓存包括:将所述信息查询请求转换为可缓存格式;将转换为可缓存格式的信息查询请求和查询到的所述信息进行对应缓存;其中,所述可缓存格式的信息查询请求中包括唯一的所述请求标识。
在一个实施例中,所述解析所接收的信息查询请求,获取所述信息查询请求中携带的请求标识包括:接收并解析终端发送的信息查询请求,获取所述信息查询请求中携带的请求标识。所述当执行所述信息查询请求所经历的时长超过预设时长阈值时,则将包括所述请求标识的所述信息查询请求与查询到的所述信息进行对应缓存,并返回查询到的所述信息包括:通过拦截器拦截向所述终端返回的从数据库中查询到的所述信息;获取执行所述信息查询请求所经历的时长;当所述所经历的时长超过预设时长阈值时,则将包括所述请求标识的所述信息查询请求与拦截的所述信息进行对应缓存,并通知所述拦截器将拦截的所述信息发送至所述终端。
在一个实施例中,计算机可读指令还使得处理器执行以下步骤:监测数据库中与缓存的所述信息对应的信息是否发生更新;当数据库中与缓存的所述信息对应的信息发生更新时,则将与缓存的所述信息所对应缓存的所述信息查询请求反解析为可执行的信息查询请求;执行可执行的所述信息查询请求,从数据库重新获取相应的信息;根据重新获取的信息,对与所述信息查询请求对应缓存的信息进行更新处理。
在一个实施例中,所述根据重新获取的信息,对与所述信息查询请求对应缓存的信息进行更新处理包括:获取从开始执行可执行的所述信息查询请求起至重新获取到相应所述信息时,所经历的重新获取时长;当所述重新获取时长超过所述预设时长阈值时,则将缓存中与所述信息查询请求对应缓存的信息更新为所述重新获取的信息。
在一个实施例中,计算机可读指令还使得处理器执行以下步骤:针对缓存的所述信息查询请求,赋予相应的缓存有效时长;当超过所述缓存有效时长时,将缓存中相应的所述信息查询请求,以及与所述信息查询请求对应缓存的信息删除。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,该计算机程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,前述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)等非易失性存储介质,或随机存储记忆体(Random Access Memory,RAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。