缓存控制方法、装置、存储介质及设备制造方法及图纸

技术编号:24573700 阅读:53 留言:0更新日期:2020-06-21 00:04
本发明专利技术实施例公开了缓存控制方法、装置、存储介质及设备。其中,该方法包括:检测到第一数据的缓存事件被触发;若确定第一数据为新增数据,且缓存空间中的第一区域已达到对应的存储上限,则将第一区域的尾部位置所存储的第二数据淘汰,其中,缓存空间中包含至少两个区域,第一区域为至少两个区域中对应的命中次数最小的区域,命中次数包括缓存空间中的同一个数据被重复访问的次数;将第一数据存入所述第一区域的头部位置。本发明专利技术实施例提供的技术方案,可以对命中次数较多的数据进行保护,可有效避免热门数据因大批量新数据集中存入而被淘汰。

Cache control method, device, storage medium and equipment

【技术实现步骤摘要】
缓存控制方法、装置、存储介质及设备
本专利技术实施例涉及计算机
,尤其涉及缓存控制方法、装置、存储介质及设备。
技术介绍
对于一些提供资源下载服务或内容分发服务的设备或系统(简称下载模块),通常会配置缓存模块,可提高服务响应速度。例如,客户端向下载模块发起资源下载请求,下载模块首先查询缓存模块中是否存在客户端请求的资源文件,若存在,则直接向客户端下发该资源文件,无需向服务器转发请求并将服务器回应的资源文件转发给客户端。然而,缓存模块中的存储空间是有限的,通常需要设置缓存淘汰策略来决定缓存模块中哪些数据应该被移除,以保证有足够的存储用于存储新的资源文件。目前,缓存淘汰策略主要基于最近最少使用(Leastrecentlyused,LRU)算法确定,LRU算法的思想是如果一个数据在最近一段时间没有被访问到,那么可以认为在将来它被访问的可能性也很小,因此,当空间满时,最久没有访问的数据最先被淘汰。最常见的实现方法是使用一个链表保存缓存数据,新数据插入链表头部,缓存命中则将数据迁移到链表头部,链表满时将链表尾部数据丢弃。然而,上述缓存控制方案并不完善,需要改进。
技术实现思路
本专利技术实施例提供了缓存控制方法、装置、存储介质和设备,可以优化现有的缓存控制方案。第一方面,本专利技术实施例提供了一种缓存控制方法,该方法包括:检测到第一数据的缓存事件被触发;若确定所述第一数据为新增数据,且缓存空间中的第一区域已达到对应的存储上限,则将所述第一区域的尾部位置所存储的第二数据淘汰,其中,所述缓存空间中包含至少两个区域,所述第一区域为所述至少两个区域中对应的命中次数最小的区域,所述命中次数包括所述缓存空间中的同一个数据被重复访问的次数;将所述第一数据存入所述第一区域的头部位置。第二方面,本专利技术实施例提供了一种缓存控制装置,该装置包括:检测模块,用于检测第一数据的缓存事件是否被触发;淘汰模块,用于在检测到第一数据的缓存事件被触发时,若确定所述第一数据为新增数据,且缓存空间中的第一区域已达到对应的存储上限,则将所述第一区域的尾部位置所存储的第二数据淘汰,其中,所述缓存空间中包含至少两个区域,所述第一区域为所述至少两个区域中对应的命中次数最小的区域,所述命中次数包括所述缓存空间中的同一个数据被重复访问的次数;缓存控制模块,用于将所述第一数据存入所述第一区域的头部位置。第三方面,本专利技术实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本专利技术实施例提供的缓存控制方法。第四方面,本专利技术实施例提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如本专利技术实施例提供的缓存控制方法。本专利技术实施例中提供的缓存控制方案,在缓存空间中依据所对应的命中次数的大小设置至少两个区域,在检测到作为新增数据的第一数据的缓存事件被触发时,若缓存空间中对应命中次数最小的第一区域已达到对应的存储上限,则将第一区域的尾部位置所存储的第二数据淘汰,并将第一数据存入第一区域的头部位置。通过采用上述技术方案,对缓存区域进行划分,当新增数据时,先存入对应命中次数最小的区域,若该区域已满,则从该区域内部进行数据淘汰,不会影响到其他对应命中次数较大的区域中的数据,从而对命中次数较多的数据进行保护,可有效避免热门数据因大批量新数据集中存入而被淘汰。附图说明图1为本专利技术实施例提供的一种缓存控制方法可适用的应用场景的场景架构图;图2为本专利技术实施例提供的一种缓存控制方法的流程示意图;图3为本专利技术实施例提供的又一种缓存控制方法的流程示意图;图4为本专利技术实施例提供的一种缓存空间区域划分示意图;图5为本专利技术实施例提供的一种缓存控制装置的结构框图;图6为本专利技术实施例提供的一种计算机设备的结构框图。具体实施方式下面结合附图和实施例对本专利技术作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本专利技术,而非对本专利技术的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本专利技术相关的部分而非全部结构。此外,在不冲突的情况下,本专利技术中的实施例及实施例中的特征可以相互组合。图1为本专利技术实施例提供的一种缓存控制方法可适用的应用场景的场景架构图。具体的,参考图1,该应用场景中可以包括客户端10、下载模块20、服务器30和缓存模块40。如图1所示,客户端10可以向下载模块20发起数据下载请求,下载模块20向服务器30转发该下载请求,服务器30回应下载请求,将请求的数据发送给下载模块20。下载模块20接收到数据后,转发给客户端10。下载模块20中可以加入缓存模块40,用于存储部分数据。当客户端10的下载请求到达下载模块20时,下载模块20首先查询缓存模块40,如果缓存模块40中存在该下载请求对应的数据,则可直接向客户端10下发该数据,无需向服务器30请求。而对于缓存模块40来说,其容量有限,只能存储部分数据。缓存淘汰算法可以用于决定缓存模块中哪些数据应该被移除,用于存储新的数据。如前文所述,最常用的缓存淘汰算法为LRU,实现方法是使用一个链表保存缓存数据,新数据插入链表头部,缓存命中则将数据迁移到链表头部,链表满时将链表尾部数据丢弃,这种方案中,热点数据由于访问频率较高,会驻留在LRU链表靠近头部的位置,淘汰的优先级最低,非热点数据则随着新数据的插入逐渐后移,最终被淘汰。然而,新数据写入链表头部,即淘汰优先级最低的位置,但是这个数据不一定是热点数据,热点数据一般只是全部数据的一小部分,大量新数据的写入常常会导致热点数据被淘汰,导致缓存命中率较低。其中,命中可以理解为缓存模块的缓存空间中的同一个数据被重复访问,命中率可以理解为客户端发起数据下载请求后,所对应的数据存储于缓存空间中的概率。本专利技术实施例中,对缓存区域进行划分,当新增数据时,先存入对应命中次数最小的区域,若该区域已满,则从该区域内部进行数据淘汰,不会影响到其他对应命中次数较大的区域中的数据。更具体的,可适用于短视频下载业务场景,也可适用于其他如图片、文档或音频等资源的下载业务场景。下面结合具体实施例对本专利技术作进一步的详细说明。图2为本专利技术实施例提供的一种缓存控制方法的流程示意图,该方法可以由缓存控制装置执行,其中该装置可由软件和/或硬件实现,一般可集成在计算机设备中。如图2所示,该方法包括:步骤201、检测到第一数据的缓存事件被触发。示例性的,本专利技术实施例中的计算机设备可以是实现上述缓存模块相关功能的设备,具体实现方式不做限定,可以是独立设备,也可以是集群设备等。示例性的,数据的缓存事件的触发方式可根据实际情况设置,具体可以由缓存模块所属的下载模块根据缓存策略来确定。例如,在接收到客户端针对第一数据的访问请求时,可认为检测到第一数据的缓存事件被触发。对于短视频等视频下载业务场景来说,可具体为检测到视频客户端针对第一视频数据发出访问请求。第一本文档来自技高网...

【技术保护点】
1.一种缓存控制方法,其特征在于,包括:/n检测到第一数据的缓存事件被触发;/n若确定所述第一数据为新增数据,且缓存空间中的第一区域已达到对应的存储上限,则将所述第一区域的尾部位置所存储的第二数据淘汰,其中,所述缓存空间中包含至少两个区域,所述第一区域为所述至少两个区域中对应的命中次数最小的区域,所述命中次数包括所述缓存空间中的同一个数据被重复访问的次数;/n将所述第一数据存入所述第一区域的头部位置。/n

【技术特征摘要】
1.一种缓存控制方法,其特征在于,包括:
检测到第一数据的缓存事件被触发;
若确定所述第一数据为新增数据,且缓存空间中的第一区域已达到对应的存储上限,则将所述第一区域的尾部位置所存储的第二数据淘汰,其中,所述缓存空间中包含至少两个区域,所述第一区域为所述至少两个区域中对应的命中次数最小的区域,所述命中次数包括所述缓存空间中的同一个数据被重复访问的次数;
将所述第一数据存入所述第一区域的头部位置。


2.根据权利要求1所述的方法,其特征在于,包括:
所述至少两个区域中的每个区域对应至少一个命中次数,所述至少两个区域依据所对应的最小命中次数降序排列,所述第一区域对应的最小命中次数为0。


3.根据权利要求2所述的方法,其特征在于,在所述检测到第一数据的缓存事件被触发之后,还包括:
若确定所述第一数据已存储于第二区域中,则将所述第一数据移动存储至所述第二区域的对应位置,其中,所述第二区域为所述至少两个区域中的首位区域。


4.根据权利要求3所述的方法,其特征在于,所述将所述第一数据移动存储至所述第二区域的对应位置,包括:
在所述第一数据对应的当前命中次数大于或等于所述第二区域对应的最大命中次数时,将所述第一数据移动存储至所述第二区域的头部位置。


5.根据权利要求4所述的方法,其特征在于,还包括:
若所述第一数据对应的当前命中次数小于所述第二区域对应的最大的命中次数,则将所述第一数据移动存储至所述第二区域中与所述当前命中次数对应的位置。


6.根据权利要求2所述的方法,其特征在于,在所述检测到第一数据的缓存事件被触发之后,还包括:
若确定所述第一数据已存储于第三区域中,则判断所述第一数据对应的当前命中次数是否等于第四区域对应的最小命中次数,若是,则将所述第一数据移动存储至所述第四区域,其中,所述第三区域包括所述至少两个区域中的除首位区域之外的区域,所述第四区域包括与所述第三区域相邻并位于所述第三区域之前的区域。


7.根据权利要求6所述的方法,其特征在于,所述将所述第一数据移动存储至所述第四区域,包括:
当所述第四区域已达到对应的存储上限时,将所述第一数据移动存储至所述第四区域,并将所述第四区域的尾部位置所存储的第三数据移动存储至所述第三区域。


8.根据权利要求7所述的方法,其特征在于,所述将所述第一数据移动存储至所述第四区域,并将所述第四区域的尾部位置所存储的第三数据移动存储至所述第三区域,包括:
将所述第一数据移动存储至所述第四区域的尾部位置,并将所述第四区域的尾部位置所存储的第三数...

【专利技术属性】
技术研发人员:陈志淮郭树涵田旺
申请(专利权)人:广州市百果园信息技术有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1