CN111597213A - 一种缓存方法、软件服务器及存储介质 - Google Patents
一种缓存方法、软件服务器及存储介质 Download PDFInfo
- Publication number
- CN111597213A CN111597213A CN201910129563.3A CN201910129563A CN111597213A CN 111597213 A CN111597213 A CN 111597213A CN 201910129563 A CN201910129563 A CN 201910129563A CN 111597213 A CN111597213 A CN 111597213A
- Authority
- CN
- China
- Prior art keywords
- cache
- duration
- target
- data
- 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
Images
Classifications
-
- 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
- Information Transfer Between Computers (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明实施例提供一种缓存方法,包括:获取全部缓存数据中目标缓存数据的历史访问记录,并基于历史访问记录确定目标缓存数据对应的第一缓存时长;根据当前时间段接收到的数据请求,确定全部缓存数据对应的平均访问次数,以及目标缓存数据对应的目标访问次数;基于平均访问次数和目标访问次数更新第一缓存时长,获得第二缓存时长;向缓存服务器发送第一设置指令,以供缓存服务器根据第一设置指令按照第二缓存时长缓存目标缓存数据。
Description
技术领域
本发明涉及通信技术,尤其涉及一种缓存方法、软件服务器及存储介质。
背景技术
随着科技的不断进步,缓存应用非常广泛,从部署的角度可以分为分布式缓存、反向代理缓存,以及内容分发网络(Content Delivery Network,CDN)缓存。
目前,缓存技术的过期策略通常为固定时间过期策略或者相对时间过期策略,例如,基于先进先出、最近最少使用,以及历史访问频率中的至少一种策略,以淘汰缓存数据。然而,由于软件服务器业务的动态性和入口流量的突发或者不确定性,容易出现部分缓存数据在缓存时间中使用次数很少,或者部分缓存数据需要使用很多次,但是由于缓存时间的限制而过期,因此需要重新加载数据到缓存等情况,导致缓存数据的利用率较低,软件服务器的性能和吞吐能力较差。
发明内容
本发明实施例提供一种缓存方法、软件服务器及存储介质,基于实时数据请求实时动态更新缓存数据的缓存时长,不仅提高了缓存数据的利用率,还提高了软件服务器的性能和吞吐能力。
本发明实施例的技术方案是这样实现的:
第一方面,本发明实施例提供一种缓存方法,所述方法包括:
获取全部缓存数据中目标缓存数据的历史访问记录,并基于所述历史访问记录确定所述目标缓存数据对应的第一缓存时长;
根据当前时间段接收到的数据请求,确定所述全部缓存数据对应的平均访问次数,以及所述目标缓存数据对应的目标访问次数;
基于所述平均访问次数和所述目标访问次数更新所述第一缓存时长,获得第二缓存时长;
向缓存服务器发送第一设置指令,以供所述缓存服务器根据所述第一设置指令按照所述第二缓存时长缓存所述目标缓存数据。
在上述方案中,所述获得第二缓存时长之后,所述方法还包括:
获取所述目标缓存数据的变更频率,并基于所述变更频率和所述第二缓存时长确定第三缓存时长;
向所述缓存服务器发送第二设置指令,以供所述缓存服务器根据所述第二设置指令按照所述第三缓存时长缓存所述目标缓存数据。
在上述方案中,所述基于所述历史访问记录确定所述目标缓存数据对应的第一缓存时长,包括:
根据所述历史访问记录确定所述目标缓存数据的访问频率;
基于所述访问频率确定所述第一缓存时长。
在上述方案中,所述基于所述访问频率确定所述第一缓存时长,包括:
获取所述全部缓存数据对应的平均缓存时长,以及所述目标缓存数据的原缓存时长;
根据所述访问频率和所述平均缓存时长,确定所述目标缓存数据的缓存权重;
根据所述原缓存时长和所述缓存权重,确定所述第一缓存时长。
在上述方案中,所述基于所述平均访问次数和所述目标访问次数更新所述第一缓存时长,获得第二缓存时长,包括:
比较所述目标访问次数和所述平均访问次数;
在所述目标访问次数大于所述平均访问次数时,延长所述第一缓存时长,获得所述第二缓存时长。
在上述方案中,所述基于所述变更频率和所述第二缓存时长确定第三缓存时长,包括:
获取所述变更频率对应的第一业务因子,以及所述第二缓存时长对应的第二业务因子;
根据所述变更频率、所述第一业务因子、所述第二缓存时长,以及所述第二业务因子,确定所述第三缓存时长。
第二方面,本发明实施例提供一种软件服务器,所述软件服务器包括:处理器、存储器和通信总线;
所述通信总线,用于实现所述处理器和所述存储器之间的通信连接;
所述处理器,用于执行所述存储器中存储的缓存程序,以实现以下步骤:
获取全部缓存数据中目标缓存数据的历史访问记录,并基于所述历史访问记录确定所述目标缓存数据对应的第一缓存时长;根据当前时间段接收到的数据请求,确定所述全部缓存数据对应的平均访问次数,以及所述目标缓存数据对应的目标访问次数;基于所述平均访问次数和所述目标访问次数更新所述第一缓存时长,获得第二缓存时长;向缓存服务器发送第一设置指令,以供所述缓存服务器根据所述第一设置指令按照所述第二缓存时长缓存所述目标缓存数据。
在上述软件服务器中,所述处理器在获得第二缓存时长之后,具体用于执行所述缓存程序,以实现以下步骤:
获取所述目标缓存数据的变更频率,并基于所述变更频率和所述第二缓存时长确定第三缓存时长;向所述缓存服务器发送第二设置指令,以供所述缓存服务器根据所述第二设置指令按照所述第三缓存时长缓存所述目标缓存数据。
在上述软件服务器中,所述处理器具体用于执行所述缓存程序,以实现以下步骤:
根据所述历史访问记录确定所述目标缓存数据的访问频率;基于所述访问频率确定所述第一缓存时长。
在上述软件服务器中,所述处理器具体用于执行所述缓存程序,以实现以下步骤:
获取所述全部缓存数据对应的平均缓存时长,以及所述目标缓存数据的原缓存时长;根据所述访问频率和所述平均缓存时长,确定所述目标缓存数据的缓存权重;根据所述原缓存时长和所述缓存权重,确定所述第一缓存时长。
在上述软件服务器中,所述处理器具体用于执行所述缓存程序,以实现以下步骤:
比较所述目标访问次数和所述平均访问次数;在所述目标访问次数大于所述平均访问次数时,延长所述第一缓存时长,获得所述第二缓存时长。
在上述软件服务器中,所述处理器具体用于执行所述缓存程序,以实现以下步骤:
获取所述变更频率对应的第一业务因子,以及所述第二缓存时长对应的第二业务因子;根据所述变更频率、所述第一业务因子、所述第二缓存时长,以及所述第二业务因子,确定所述第三缓存时长。
第三方面,本发明实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可以被一个或者多个处理器执行,以实现上述缓存方法。
由此可见,在本发明实施例的缓存方法,获取全部缓存数据中目标缓存数据的历史访问记录,并基于历史访问记录确定目标缓存数据对应的第一缓存时长;根据当前时间段接收到的数据请求,确定全部缓存数据对应的平均访问次数,以及目标缓存数据对应的目标访问次数;基于平均访问次数和目标访问次数更新第一缓存时长,获得第二缓存时长;向缓存服务器发送第一设置指令,以供缓存服务器根据第一设置指令按照第二缓存时长缓存目标缓存数据。也就是说,本发明实施例提供的技术方案,软件服务器能够基于实时数据请求实时动态更新缓存服务器中缓存数据的缓存时长,提高了缓存数据的利用率,进而减少不必要的返回软件服务器请求重新加载缓存数据的情况,提高了软件服务器的性能和吞吐能力。
应用本发明实施例实现以下有益效果:
因为基于实时数据请求实时动态更新缓存服务器中缓存数据的缓存时长,提高了缓存数据的利用率,进而减少不必要的返回软件服务器请求重新加载缓存数据的情况,提高了软件服务器的性能和吞吐能力。
附图说明
图1为本发明实施例提供的一种缓存方法的流程示意图一;
图2为本发明实施例提供的一种缓存方法的流程示意图二
图3为本发明实施例提供的一种缓存方法的具体交互流程示意图一;
图4为本发明实施例提供的一种缓存方法的具体交互流程示意图二;
图5为本发明实施例提供的一种软件服务器的结构示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,所描述的实施例不应视为对本发明的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本发明实施例的目的,不是旨在限制本发明。
本发明实施例提供了一种缓存方法,图1为本发明实施例提供的一种缓存方法的流程示意图一。如图1所示,主要包括以下步骤:
S101、获取全部缓存数据中目标缓存数据的历史访问记录,并基于历史访问记录确定目标缓存数据对应的第一缓存时长。
在本发明的实施例中,软件服务器可以获取到全部缓存数据中目标缓存数据的历史访问记录,从而基于历史访问记录确定出目录缓存数据对应的第一缓存时长。
需要说明的是,在本发明的实施例中,目标缓存数据为全部缓存数据中的任意一种用于实现某一业务需要加载的数据,具体的目标缓存数据本发明实施例不作限定。
需要说明的是,在本发明的实施例中,软件服务器可以记录目标缓存数据的访问次数和时间等信息,从而获得目标缓存数据的历史访问记录,历史访问记录可以限定为以当前日期为标准,前一日期内目标缓存数据的访问记录,当然,可以限定为其它历史时间内目标缓存数据的访问记录,具体的目标缓存数据的历史访问记录本发明实施例不作限定。
具体的,在本发明的实施例中,软件服务器基于历史访问记录确定目标缓存数据对应的第一缓存时长,包括:根据历史访问记录确定目标缓存数据的访问频率;基于访问频率确定第一缓存时长。
需要说明的是,在本发明的实施例中,软件服务器基于访问频率确定第一缓存时长的方式可以有多种,具体可以按照不同的需求预先设置,本发明实施例不作限定。
在本发明的实施例中,软件服务器基于访问频率确定第一缓存时长,可以包括:获取全部缓存数据对应的平均缓存时长,以及目标缓存数据的原缓存时长;计算访问频率与平均缓存时长之商,获得目标缓存数据的缓存权重;计算原缓存时长和缓存权重之积,获得第一缓存时长。
可以理解的是,在本发明的实施例中,全部缓存数据中包括目标缓存数据,在全部缓存数据中,不同的缓存数据实际上对应着不同的业务,根据不同的业务,甚至是不同缓存数据的数据量,在缓存服务器中设置的原缓存时长是不相同的,软件服务器可以获取到这些缓存数据的平均缓存时长,以及全部缓存数据中目标缓存数据的原缓存时长,具体的目标缓存数据的原缓存时长本发明实施例不作限定。
示例性的,在本发明的实施例中,软件服务器确定出目标缓存数据的访问频率为A,并获取到全部缓存数据对应的平均缓存时长为T,目标缓存数据的原缓存时长为T0,从而计算出A/T,A/T即为目标缓存数据的缓存权重,之后,计算出T0×(A/T),即目标缓存数据对应的第一缓存时长T1=T0×(A/T)。
可以理解的是,在本发明的实施例中,软件服务器并非直接获取目标缓存数据的原缓存时长,以进行后续的动态更新,而是基于目标缓存数据的历史访问记录,先对原缓存时长进行了静态调整,赋予了一定的权重,从而作为后续动态更新缓存时长的基础,更加合理,符合实际的应用。
S102、根据当前时间段接收到的数据请求确定全部缓存数据对应的平均访问次数,以及目标缓存数据对应的目标访问次数。
在本发明的实施例中,软件服务器在确定目标缓存数据对应的第一缓存时长之后,进一步的,可以根据当前时间段接收到的数据请求确定全部缓存数据对应的平均访问次数,以及目标缓存数据对应的目标访问次数。
需要说明的是,在本发明的实施例中,当前时间段可以为软件服务器中预先设置的与当前时刻相关的一段时间,例如,以当前时刻为起始时刻,之后的五分钟之内作为当前时间段,或者,以当前时刻为起始时刻,之后经过与平均缓存时长相等的时间段作为当前时间段,当然,还可以设置为其它时长或确定方式,具体的当前时间段本发明实施例不作限定。
示例性的,在本发明的实施例中,在当前时间段接收到的数据请求包括:第一请求、第二请求、第三请求、第四请求、第五请求和第六请求,全部缓存数据包括:第一缓存数据、第二缓存数据和目标缓存数据,其中,第二请求、第四请求和第六请求为请求访问目标缓存数据的请求,因此,软件服务器可以确定出全部缓存数据对应的平均访问次数为6/3,即2次,针对目标缓存数据的目标访问次数为3次。
需要说明的是,在本发明的实施例中,软件服务器根据数据请求,统计目标缓存数据对应的目标访问次数,可以按照统一资源定位符进行统计,统计出具体的次数,以及具体的时间等,当然,还可以统计出全部缓存数据中其它缓存数据的访问次数等,具体的统计方法本发明实施例不作限定。
S103、基于平均访问次数和目标访问次数更新第一缓存时长,获得第二缓存时长。
在本发明的实施例中,软件服务器在确定平均访问次数和目标访问次数之后,可以基于平均访问次数和目标访问次数更新第一缓存时长,获得第二缓存时长。
具体的,在本发明的实施例中,软件服务器基于平均访问次数和目标访问次数更新第一缓存时长,获得第二缓存时长,包括:比较目标访问次数和平均访问次数;在目标访问次数大于平均访问次数时,延长第一缓存时长,获得第二缓存时长。可以理解的是,在本发明的实施例中,软件服务器基于当前时间段接收到的数据请求更新第一缓存时长,也就是根据实时数据请求中针对目标缓存数据的请求确定请求访问目标缓存数据是否频繁,如果频繁,则说明需要在一定程度上延长目标缓存数据的缓存时长,即更新第一缓存时长,而当前时间段内全部缓存数据对应的平均访问次数,体现了实时状态下,不同缓存数据较为均衡的一个访问情况,如果目标缓存数据对应的目标访问次数,大于该平均访问次数,说明了目标缓存数据的访问较为频繁,因此,需要根据第一缓存时长。
需要说明的是,在本发明的实施例中,软件服务器比较出目标访问次数大于平均访问次数时,即说明目标缓存数据访问较为频繁,因此,软件服务器对第一缓存时长进行调整,具体是延长之前确定的第一缓存时长,软件服务器调整第一缓存时长的方式,可以为按照一定的规则进行延长,例如,按照阶梯式的规则调整,第一缓存时长为T1,如果目标访问次数大于平均访问次数的数值大于等于1次,且小于A1次,则延长第一缓存时长B1时长,获得第二缓存时长T2=T1+B1,如果目标缓存时长大于平均访问次数的数值大于等于A1,且小于A2,则延长第一缓存时长B2时长,获得第二缓存时长T2=T1+B2,依次类推,进行第一缓存时长的调整。当然,软件服务器还可以按照其它的方式对第一缓存时长进行调整,本发明实施例不作限定。
可以理解的是,在本发明的实施例中,软件服务器根据实时的数据请求,动态更新第一缓存时长,可以在目标缓存数据缓存过期前,动态延期缓存的过期时间,从而避免缓存服务器中目标缓存数据失效之后,需要返回软件服务器中进行数据请求以重新加载目标缓存数据。
S104、向缓存服务器发送第一设置指令,以供缓存服务器根据第一设置指令按照第二缓存时长缓存目标缓存数据。
在本发明的实施例中,软件服务器在确定了第二缓存时长之后,即可向缓存服务器发送第一设置指令,缓存服务器接收到第一设置指令,即可根据第一设置指令按照第二缓存时长缓存目标缓存数据。
可以理解的是,在本发明的实施例中,缓存服务器可以用于缓存各种缓存数据,因此,软件服务器指示缓存服务器按照第二缓存时长缓存目标缓存数据,当客户端或者浏览器请求目标缓存数据时,在第二缓存时长内,缓存服务器可以直接响应,不需要再向软件服务器请求重新加载目标缓存数据。
需要说明的是,在本发明的实施例中,针对步骤S103获得的第二缓存时长,软件服务器还可以进一步进行调整,获得更加合理的缓存时长。图2为本发明实施例提供的一种缓存方法的流程示意图二。如图2所示,在步骤S103之后,还可以包括如下步骤:
S105、获取目标缓存数据的变更频率,并基于变更频率和第二缓存时长确定第三缓存时长。
在本发明的实施例中,软件服务器在获得第二缓存时长之后,可以进一步获取目标缓存数据的变更频率,并基于变更频率和第二缓存时长确定第三缓存时长。
需要说明的是,在本发明的实施例中,目标缓存数据的变更频率,可以为在一定单位时间段内目标缓存数据的刷新次数,具体的单位时间段可以为一小时,一天,或者其它时间段,本发明实施例不作限定。
具体的,在本发明的实施例中,软件服务器基于变更频率和第二缓存时长确定第三缓存时长,包括:获取变更频率对应的第一业务因子,以及第二缓存时长对应的第二业务因子;根据变更频率、第一业务因子、第二缓存时长,以及第二业务因子,确定第三缓存时长。
需要说明的是,在本发明的实施例中,不同的缓存数据实际上对应的是不同业务的实现,由于业务的实际需求或者重要程度不同,即对应的缓存数据其需求或者重要程度也是不同的,因此,软件服务器中还可以根据实际需求预置不同的业务因子,具体为目标缓存数据对应的变更频率预置第一业务因子,为第二缓存时长预置第二业务因子,具体的第一业务因子和第二业务因子本发明实施例不作限定。
示例性的,在本发明的实施例中,软件服务器获得的变更频率为f,第二缓存时长为T2,第一业务因子为U,第二业务因子为V,因此,可以确定出第三缓存时长T3=(f×U+T2×V)/2。
需要说明的是,在本发明的实施例中,软件服务器还可以按照其它的具体计算方式确定第三缓存时长,本发明实施例不作限定。
S106、向缓存服务器发送第二设置指令,以供缓存服务器根据第二设置指令按照第三缓存时长缓存目标缓存数据。
在本发明的实施例中,软件服务器在获得第三缓存数据之后,即可向缓存服务器发送第二设置指令,以供缓存服务器根据第二设置指令按照第三缓存时长缓存目标缓存数据。
可以理解的是,在本发明的实施例中,软件服务器根据第二缓存时长和目标缓存数据的变更频率,进一步确定第三缓存时长,可以更加合理的确定目标缓存数据的缓存时长,避免由于目标缓存数据缓存时长过长,加载的目标缓存数据已经不是真实的数据,或者,缓存时长过短,没有有效利用缓存服务器资源的情况。
本发明实施例提供了一种缓存方法,获取全部缓存数据中目标缓存数据的历史访问记录,并基于历史访问记录确定目标缓存数据对应的第一缓存时长;根据当前时间段接收到的数据请求,确定全部缓存数据对应的平均访问次数,以及目标缓存数据对应的目标访问次数;基于平均访问次数和目标访问次数更新第一缓存时长,获得第二缓存时长;向缓存服务器发送第一设置指令,以供缓存服务器根据第一设置指令按照第二缓存时长缓存目标缓存数据。也就是说,本发明实施例提供的技术方案,软件服务器能够基于实时数据请求实时动态更新缓存服务器中缓存数据的缓存时长,提高了缓存数据的利用率,进而减少不必要的返回软件服务器请求重新加载缓存数据的情况,提高了软件服务器的性能和吞吐能力。
基于上述方案,以下提供缓存方法的具体实施例:
图3为本发明实施例提供的一种缓存方法的具体交互流程示意图一。如图3所示,通过软件服务器、缓存服务器,以及客户端/浏览器实现缓存方法,主要包括以下步骤:
S301、客户端/服务器向缓存服务器发送针对目标缓存数据的目标数据请求。
S302、缓存服务器根据目标数据请求,确定目标缓存数据是否缓存过期。
S303、缓存服务器确定目标缓存数据未缓存过期时,直接响应客户端/服务器的目标数据请求。
需要说明的是,在步骤S302之后,还可以包括以下步骤:
S304、缓存服务器确定目标缓存数据已缓存过期时,向软件服务器发送目标数据请求。
S305、软件服务器根据目标数据请求,从自身的数据库中查找目标缓存数据。
S306、软件服务器根据当前时间段接收到的全部数据请求,更新之前确定的目标缓存数据对应的第一缓存时长,获得第二缓存时长。
S307、软件服务器向缓存服务器发送第一设置指令和目标缓存数据。
S308、缓存服务器根据第一设置指令,按照第二缓存时长缓存目标缓存数据。
S309、缓存服务器根据目标缓存数据,响应客户端/浏览器的目标数据请求。
需要说明的是,在本发明的实施例中,步骤S306中,软件服务器获得第二缓存时长之后,还可以进一步基于目标缓存数据的变更频率和第二缓存时长,确定第三缓存时长,指示缓存服务器按照第三缓存时长缓存目标缓存数据。
需要说明的是,在本发明的实施例中,图3所示的缓存服务器,实际上可以为分布式缓存网络服务器或者内容分发网络服务器,具体的缓存服务器本发明实施例不作限定。
需要说明的是,在本发明的实施例中,图3所示的软件服务器,实际上可以为业务服务器,具体的软件服务器本发明实施例不作限定。
图4为本发明实施例提供的一种缓存方法的具体交互流程示意图二。如图4所示,通过业务服务器、分布式缓存服务器、代理服务器、内容分发网络服务器,以及客户端/浏览器实现缓存方法,其中,业务服务器和代理服务器实际上实现了软件服务器的功能,也就是说,软件服务器可以划分为业务服务器和代理服务器,分布式缓存服务器和内容分发网络服务器实际上是两种不同的缓存服务器,主要包括以下步骤:
S401、客户端/服务器向内容分发网络服务器发送针对目标缓存数据的目标数据请求。
S402、内容分发网络服务器根据目标数据请求,确定目标缓存数据是否缓存过期。
S403、内容分发网络服务器确定目标缓存数据未缓存过期时,直接响应客户端/服务器的目标数据请求。
需要说明的是,在步骤S403之后,还可以包括以下步骤:
S404、内容分发网络服务器确定目标缓存数据已缓存过期时,向代理服务器发送目标数据请求。
S405、代理服务器根据当前时间段接收到的全部数据请求,更新之前确定的目标缓存数据对应的第一缓存时长,获得第二缓存时长。
S406、代理服务器向分布式缓存服务器发送第一设置指令和目标数据请求。
S407、分布式缓存服务器根据目标数据请求,确定目标缓存数据是否过期。
S408、分布式缓存服务器确定目标缓存数据未缓存过期时,响应代理服务器的目标数据请求。
S409、分布式缓存服务器根据第一设置指令,按照第二缓存时长缓存目标缓存数据。
S410、代理服务器获取目标缓存数据的变更频率,并基于变更频率和第二缓存时长确定第三缓存时长。
S411、代理服务器根据响应的目标缓存数据,响应内容分发网络服务器的目标数据请求,并发送第二设置指令。
S412、内容分发网络服务器根据响应的目标缓存数据,响应客户端/浏览器的目标数据请求。
S413、内容分发网络服务器根据第二设置指令,按照第三缓存时长缓存目标缓存数据。
需要说明的是,在本发明的实施例中,在步骤S407之后,还可以包括如下步骤:
S414、分布式缓存服务器确定目标缓存数据缓存过期时,不响应代理服务器的目标数据请求。
S415、代理服务器未接收到分布式缓存服务器对目标数据请求的响应,向业务服务器发送第一设置指令和目标数据请求。
S416、业务服务器根据目标数据请求,从自身的数据库中查找目标缓存数据。
S417、业务服务器根据目标缓存数据,响应代理服务器的目标数据请求。
S418、业务服务器向分布式缓存服务器发送目标缓存数据和第一设置指令。
S419、分布式缓存服务器根据第一设置指令,按照第二缓存时长缓存目标缓存数据。
需要说明的是,在本发明的实施例中,步骤S415之后,后续执行的步骤同上述步骤S410~S413一致,在此不再赘述。
需要说明的是,在本发明的实施例中,图4所示的缓存方法中,分布式缓存服务器和内容分发网络服务器也可以均按照第三缓存时长缓存目标缓存数据,本发明实施例不作限定。
需要说明的是,在本发明的实施例中,图3和图4所示的缓存方法,仅为具体示例性的缓存方法,当然,还可以以按照其它交互方式,或者具体的应用环境实现缓存,本发明实施例不作限定。
需要说明的是,在本发明的实施例中,上述缓存方法可以应用于各种具体的应用场景,以动态调整不同缓存数据的缓存时长,具体的应用场景本发明实施例不作限定。
示例性的,将本发明实施例提供的缓存方法应用于数据展示场景中,由于数据展示类页面、电商网站商品详情页、商品详细基本信息服务接口、商品图文介绍接口等展示类页面或数据接口,在一段时间内数据是不变化可缓存的,通过本发明实施例提供的缓存方法,可以动态实时的更新这些数据在缓存服务器中的缓存时间,具体的,如商品基本的属性数据,用户在购买商品之前,通常需要详细查看,因此,可以在实时请求加载属性数据较多的情况下,延长根据历史访问记录确定的第一缓存时长,以第二缓存时长来缓存属性数据,从而在促销等突发流量扛量的情况下,有效减少缓存服务器返回软件服务器请求这些数据的情况,从而降低了软件服务器的处理压力。
示例性的,将本发明实施例提供的缓存方法应用于数据变更场景中,当遇到节假日或大型促销时,商品等网站上有千万级甚至上亿级别的数据批量变更,具体的,如商品基本的图像数据,其长时间不需要变更,因此,除了根据实时数据请求动态更新图像数据的缓存时长,还可以进一步的根据图像数据的变更频率和外部流量访问频率动态延长缓存服务器中图像数据的缓存时长,以减少缓存数据不必要的重新加载,也提高了缓存数据的重复利用率。
本发明实施例还提供了一种软件服务器,图5为本发明实施例提供的一种软件服务器的结构示意图。如图5所示,主要包括:处理器501、存储器502和通信总线503;
所述通信总线503,用于实现所述处理器501和所述存储器502之间的通信连接;
所述处理器501,用于执行所述存储器502中存储的缓存程序,以实现以下步骤:
获取全部缓存数据中目标缓存数据的历史访问记录,并基于所述历史访问记录确定所述目标缓存数据对应的第一缓存时长;根据当前时间段接收到的数据请求,确定所述全部缓存数据对应的平均访问次数,以及所述目标缓存数据对应的目标访问次数;基于所述平均访问次数和所述目标访问次数更新所述第一缓存时长,获得第二缓存时长;向缓存服务器发送第一设置指令,以供所述缓存服务器根据所述第一设置指令按照所述第二缓存时长缓存所述目标缓存数据。
可选的,所述处理器501在获得第二缓存时长之后,具体用于执行所述缓存程序,以实现以下步骤:
获取所述目标缓存数据的变更频率,并基于所述变更频率和所述第二缓存时长确定第三缓存时长;向所述缓存服务器发送第二设置指令,以供所述缓存服务器根据所述第二设置指令按照所述第三缓存时长缓存所述目标缓存数据。
可选的,所述处理器501具体用于执行所述缓存程序,以实现以下步骤:
根据所述历史访问记录确定所述目标缓存数据的访问频率;基于所述访问频率确定所述第一缓存时长。
可选的,所述处理器501具体用于执行所述缓存程序,以实现以下步骤:
获取所述全部缓存数据对应的平均缓存时长,以及所述目标缓存数据的原缓存时长;根据所述访问频率和所述平均缓存时长,确定所述目标缓存数据的缓存权重;根据所述原缓存时长和所述缓存权重,确定所述第一缓存时长。
可选的,所述处理器501具体用于执行所述缓存程序,以实现以下步骤:
比较所述目标访问次数和所述平均访问次数;在所述目标访问次数大于所述平均访问次数时,延长所述第一缓存时长,获得所述第二缓存时长。
可选的,所述处理器501具体用于执行所述缓存程序,以实现以下步骤:
获取所述变更频率对应的第一业务因子,以及所述第二缓存时长对应的第二业务因子;根据所述变更频率、所述第一业务因子、所述第二缓存时长,以及所述第二业务因子,确定所述第三缓存时长。
本发明实施例提供了一种软件服务器,获取全部缓存数据中目标缓存数据的历史访问记录,并基于历史访问记录确定目标缓存数据对应的第一缓存时长;根据当前时间段接收到的数据请求,确定全部缓存数据对应的平均访问次数,以及目标缓存数据对应的目标访问次数;基于平均访问次数和目标访问次数更新第一缓存时长,获得第二缓存时长;向缓存服务器发送第一设置指令,以供缓存服务器根据第一设置指令按照第二缓存时长缓存目标缓存数据。也就是说,本发明实施例提供的技术方案,软件服务器能够基于实时数据请求实时动态更新缓存服务器中缓存数据的缓存时长,提高了缓存数据的利用率,进而减少不必要的返回软件服务器请求重新加载缓存数据的情况,提高了软件服务器的性能和吞吐能力。
本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程度,所述一个或者多个程序可以被一个或者多个处理器执行,以实现上述缓存方法。计算机可读存储介质可以是是易失性存储器(volatile memory),例如随机存取存储器(Random-Access Memory,RAM);或者非易失性存储器(non-volatile memory),例如只读存储器(Read-Only Mem ory,ROM),快闪存储器(flash memory),硬盘(Hard DiskDrive,HDD)或固态硬盘(Solid-State Drive,SSD);也可以是包括上述存储器之一或任意组合的各自设备,如移动电话、计算机、平板设备、个人数字助理等。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用硬件实施例、软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程信号处理设备的处理器以产生一个机器,使得通过计算机或其他可编程信号处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程信号处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程信号处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
综上所述,本发明实施例具有以下有益效果:
因为基于实时数据请求实时动态更新缓存服务器中缓存数据的缓存时长,提高了缓存数据的利用率,进而减少不必要的返回软件服务器请求重新加载缓存数据的情况,提高了软件服务器的性能和吞吐能力。
以上所述,仅为本发明的实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和范围之内所作的任何修改、等同替换和改进等,均包含在本发明的保护范围之内。
Claims (13)
1.一种缓存方法,其特征在于,所述方法包括:
获取全部缓存数据中目标缓存数据的历史访问记录,并基于所述历史访问记录确定所述目标缓存数据对应的第一缓存时长;
根据当前时间段接收到的数据请求,确定所述全部缓存数据对应的平均访问次数,以及所述目标缓存数据对应的目标访问次数;
基于所述平均访问次数和所述目标访问次数更新所述第一缓存时长,获得第二缓存时长;
向缓存服务器发送第一设置指令,以供所述缓存服务器根据所述第一设置指令按照所述第二缓存时长缓存所述目标缓存数据。
2.根据权利要求1所述的方法,其特征在于,所述获得第二缓存时长之后,所述方法还包括:
获取所述目标缓存数据的变更频率,并基于所述变更频率和所述第二缓存时长确定第三缓存时长;
向所述缓存服务器发送第二设置指令,以供所述缓存服务器根据所述第二设置指令按照所述第三缓存时长缓存所述目标缓存数据。
3.根据权利要求1所述的方法,其特征在于,所述基于所述历史访问记录确定所述目标缓存数据对应的第一缓存时长,包括:
根据所述历史访问记录确定所述目标缓存数据的访问频率;
基于所述访问频率确定所述第一缓存时长。
4.根据权利要求3所述方法,其特征在于,所述基于所述访问频率确定所述第一缓存时长,包括:
获取所述全部缓存数据对应的平均缓存时长,以及所述目标缓存数据的原缓存时长;
根据所述访问频率和所述平均缓存时长,确定所述目标缓存数据的缓存权重;
根据所述原缓存时长和所述缓存权重,确定所述第一缓存时长。
5.根据权利要求1所述的方法,其特征在于,所述基于所述平均访问次数和所述目标访问次数更新所述第一缓存时长,获得第二缓存时长,包括:
比较所述目标访问次数和所述平均访问次数;
在所述目标访问次数大于所述平均访问次数时,延长所述第一缓存时长,获得所述第二缓存时长。
6.根据权利要求2所述的方法,其特征在于,所述基于所述变更频率和所述第二缓存时长确定第三缓存时长,包括:
获取所述变更频率对应的第一业务因子,以及所述第二缓存时长对应的第二业务因子;
根据所述变更频率、所述第一业务因子、所述第二缓存时长,以及所述第二业务因子,确定所述第三缓存时长。
7.一种软件服务器,其特征在于,所述软件服务器包括:处理器、存储器和通信总线;
所述通信总线,用于实现所述处理器和所述存储器之间的通信连接;
所述处理器,用于执行所述存储器中存储的缓存程序,以实现以下步骤:
获取全部缓存数据中目标缓存数据的历史访问记录,并基于所述历史访问记录确定所述目标缓存数据对应的第一缓存时长;根据当前时间段接收到的数据请求,确定所述全部缓存数据对应的平均访问次数,以及所述目标缓存数据对应的目标访问次数;基于所述平均访问次数和所述目标访问次数更新所述第一缓存时长,获得第二缓存时长;向缓存服务器发送第一设置指令,以供所述缓存服务器根据所述第一设置指令按照所述第二缓存时长缓存所述目标缓存数据。
8.根据权利要求7所述的软件服务器,其特征在于,所述处理器在获得第二缓存时长之后,具体用于执行所述缓存程序,以实现以下步骤:
获取所述目标缓存数据的变更频率,并基于所述变更频率和所述第二缓存时长确定第三缓存时长;向所述缓存服务器发送第二设置指令,以供所述缓存服务器根据所述第二设置指令按照所述第三缓存时长缓存所述目标缓存数据。
9.根据权利要求7所述的软件服务器,其特征在于,所述处理器具体用于执行所述缓存程序,以实现以下步骤:
根据所述历史访问记录确定所述目标缓存数据的访问频率;基于所述访问频率确定所述第一缓存时长。
10.根据权利要求9所述的软件服务器,其特征在于,所述处理器具体用于执行所述缓存程序,以实现以下步骤:
获取所述全部缓存数据对应的平均缓存时长,以及所述目标缓存数据的原缓存时长;根据所述访问频率和所述平均缓存时长,确定所述目标缓存数据的缓存权重;根据所述原缓存时长和所述缓存权重,确定所述第一缓存时长。
11.根据权利要求7所述的软件服务器,其特征在于,所述处理器具体用于执行所述缓存程序,以实现以下步骤:
比较所述目标访问次数和所述平均访问次数;在所述目标访问次数大于所述平均访问次数时,延长所述第一缓存时长,获得所述第二缓存时长。
12.根据权利要求8所述的软件服务器,其特征在于,所述处理器具体用于执行所述缓存程序,以实现以下步骤:
获取所述变更频率对应的第一业务因子,以及所述第二缓存时长对应的第二业务因子;根据所述变更频率、所述第一业务因子、所述第二缓存时长,以及所述第二业务因子,确定所述第三缓存时长。
13.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可以被一个或者多个处理器执行,以实现权利要求1-6任一项所述的缓存方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910129563.3A CN111597213B (zh) | 2019-02-21 | 2019-02-21 | 一种缓存方法、软件服务器及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910129563.3A CN111597213B (zh) | 2019-02-21 | 2019-02-21 | 一种缓存方法、软件服务器及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111597213A true CN111597213A (zh) | 2020-08-28 |
CN111597213B CN111597213B (zh) | 2023-05-30 |
Family
ID=72184898
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910129563.3A Active CN111597213B (zh) | 2019-02-21 | 2019-02-21 | 一种缓存方法、软件服务器及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111597213B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113329065A (zh) * | 2021-05-18 | 2021-08-31 | 武汉联影医疗科技有限公司 | 资源预热方法、装置、计算机设备和存储介质 |
CN113329051A (zh) * | 2021-04-20 | 2021-08-31 | 海南视联大健康智慧医疗科技有限公司 | 数据获取方法、装置及可读存储介质 |
CN114327672A (zh) * | 2021-12-14 | 2022-04-12 | 中国平安财产保险股份有限公司 | 数据缓存时间设置方法、装置、计算机设备及存储介质 |
CN116301655A (zh) * | 2023-04-12 | 2023-06-23 | 深圳市英唐数码科技有限公司 | 一种历史笔记图片加载方法、系统和可读存储介质 |
CN116560585A (zh) * | 2023-07-05 | 2023-08-08 | 支付宝(杭州)信息技术有限公司 | 一种数据分级存储方法和系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6799251B1 (en) * | 2000-08-29 | 2004-09-28 | Oracle International Corporation | Performance-based caching |
CN102263822A (zh) * | 2011-07-22 | 2011-11-30 | 北京星网锐捷网络技术有限公司 | 一种分布式缓存的控制方法、系统及装置 |
CN105335102A (zh) * | 2015-10-10 | 2016-02-17 | 浪潮(北京)电子信息产业有限公司 | 一种缓存数据处理方法及装置 |
-
2019
- 2019-02-21 CN CN201910129563.3A patent/CN111597213B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6799251B1 (en) * | 2000-08-29 | 2004-09-28 | Oracle International Corporation | Performance-based caching |
CN102263822A (zh) * | 2011-07-22 | 2011-11-30 | 北京星网锐捷网络技术有限公司 | 一种分布式缓存的控制方法、系统及装置 |
CN105335102A (zh) * | 2015-10-10 | 2016-02-17 | 浪潮(北京)电子信息产业有限公司 | 一种缓存数据处理方法及装置 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113329051A (zh) * | 2021-04-20 | 2021-08-31 | 海南视联大健康智慧医疗科技有限公司 | 数据获取方法、装置及可读存储介质 |
CN113329065A (zh) * | 2021-05-18 | 2021-08-31 | 武汉联影医疗科技有限公司 | 资源预热方法、装置、计算机设备和存储介质 |
CN114327672A (zh) * | 2021-12-14 | 2022-04-12 | 中国平安财产保险股份有限公司 | 数据缓存时间设置方法、装置、计算机设备及存储介质 |
CN114327672B (zh) * | 2021-12-14 | 2024-04-05 | 中国平安财产保险股份有限公司 | 数据缓存时间设置方法、装置、计算机设备及存储介质 |
CN116301655A (zh) * | 2023-04-12 | 2023-06-23 | 深圳市英唐数码科技有限公司 | 一种历史笔记图片加载方法、系统和可读存储介质 |
CN116301655B (zh) * | 2023-04-12 | 2023-11-07 | 深圳市英唐数码科技有限公司 | 一种历史笔记图片加载方法、系统和可读存储介质 |
CN116560585A (zh) * | 2023-07-05 | 2023-08-08 | 支付宝(杭州)信息技术有限公司 | 一种数据分级存储方法和系统 |
CN116560585B (zh) * | 2023-07-05 | 2024-04-09 | 支付宝(杭州)信息技术有限公司 | 一种数据分级存储方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN111597213B (zh) | 2023-05-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111597213B (zh) | 一种缓存方法、软件服务器及存储介质 | |
CN111464615B (zh) | 请求处理方法、装置、服务器及存储介质 | |
CN103312733B (zh) | 信息处理方法和装置 | |
CN108055302B (zh) | 一种图片缓存处理方法、系统和服务器 | |
US20210132849A1 (en) | Data migration method and apparatus | |
CN109376318B (zh) | 一种页面加载方法、计算机可读存储介质及终端设备 | |
US9798827B2 (en) | Methods and devices for preloading webpages | |
US10701173B2 (en) | Caching in a content delivery framework | |
CN107026879B (zh) | 一种数据缓存方法及后台应用系统 | |
CN110737857A (zh) | 一种后端分页加速方法、系统、终端及存储介质 | |
CN111221469A (zh) | 同步缓存数据的方法、装置和系统 | |
CN112764948A (zh) | 数据发送方法、数据发送装置、计算机设备及存储介质 | |
WO2019041670A1 (zh) | 一种降低功能页面请求次数的方法、存储介质、设备及系统 | |
CN113329051A (zh) | 数据获取方法、装置及可读存储介质 | |
CN110784534B (zh) | 数据服务方法、装置、系统及电子设备 | |
CN111131864A (zh) | 数据传输方法、装置及系统 | |
CN114553786B (zh) | 网络请求熔断方法、装置、计算机设备和存储介质 | |
US10015012B2 (en) | Precalculating hashes to support data distribution | |
CN111680014B (zh) | 共享文件的获取方法、装置、电子设备及存储介质 | |
US10972577B1 (en) | Systems, methods, and storage media for managing traffic on a digital content delivery network | |
CN110233882B (zh) | 页面资源的访问控制方法、装置、系统、存储介质以及设备 | |
CN109088913B (zh) | 请求数据的方法和负载均衡服务器 | |
CN113010816A (zh) | 网页缓存更新方法、装置、电子设备及存储介质 | |
CN113342277B (zh) | 数据处理方法及装置 | |
CN113849255B (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 |