缓存控制方法、装置和计算机可读存储介质制造方法及图纸

技术编号:24455611 阅读:35 留言:0更新日期:2020-06-10 15:27
本公开涉及一种缓存控制方法、装置和计算机可读存储介质,涉及计算机技术领域。本公开的方法包括:获取待缓存对象和待缓存对象的缓存持续时间;确定缓存区剩余空间是否足够对待缓存对象进行缓存;在缓存区剩余空间不足够对待缓存对象进行缓存的情况下,根据待缓存对象的缓存过期时间和已缓存对象的缓存过期时间的比对情况,对待缓存对象进行处理;待缓存对象的缓存过期时间为当前时刻加上缓存持续时间,已缓存对象的缓存过期时间为缓存时刻加上缓存持续时间。本公开的方案能够根据需求为缓存对象设置缓存持续时间,即使在大量对象被随机访问时,缓存持续时间长的对象也不容易被置换出去。因此,本公开的方案能够提高缓存效果,提升系统性能。

Cache control method, device and computer readable storage medium

【技术实现步骤摘要】
缓存控制方法、装置和计算机可读存储介质
本公开涉及计算机
,特别涉及一种缓存控制方法、装置和计算机可读存储介质。
技术介绍
计算机操作系统中有很多设计用到缓存。例如,Linux虚拟文件系统(VFS,VirtualFileSystem),利用空闲的内存实现了PageCache(页高速缓冲存储器)功能,以缓存文件的元数据和数据,提高文件系统性能。由于待缓存的对象集合往往远远大于缓存所能容纳的对象集合,因此需要置换算法,置换出一部分对象,用以缓存新的对象。一般常见的缓存置换方法有两种:LRU(LeastRecentlyUsed,最近最少使用)算法和FIFO(FirstInputFirstOutput,先入先出)算法。LRU算法根据对象的历史访问记录来淘汰,在缓存将满的情况下新对象优先置换最近最少使用的对象。FIFO算法在缓存将满的情况下,新对象优先置换最先进入缓存的对象。
技术实现思路
专利技术人发现:缓存所能容纳的对象集合有限,应用现有的缓存置换算法,在大量对象被随机访问时,访问热度高的对象也容易被置换出去,大部分被访问的对象无法从缓存命中,造成命中率较差,缓存并没有起到应有的加速作用。另外,无法缓存固定的一部分对象。如果对象集合中有一部分核心的对象可能会在将来的一段时间内多次访问,而这部分对象对于提升系统性能起到关键作用,现有的缓存置换方法无法保证核心对象一直被缓存,而不被置换出去。本公开所要解决的一个技术问题是:如何提高缓存效果,提升系统性能。根据本公开的一些实施例,提供的一种缓存控制方法,包括:获取待缓存对象和待缓存对象的缓存持续时间;确定缓存区剩余空间是否足够对待缓存对象进行缓存;在缓存区剩余空间不足够对待缓存对象进行缓存的情况下,根据待缓存对象的缓存过期时间和已缓存对象的缓存过期时间的比对情况,对待缓存对象进行处理;其中,待缓存对象的缓存过期时间为当前时刻加上缓存持续时间,已缓存对象的缓存过期时间为缓存时刻加上缓存持续时间。在一些实施例中,根据待缓存对象的缓存过期时间和已缓存对象的缓存过期时间的比对情况,对待缓存对象进行处理包括:在存在已缓存对象的缓存过期时间早于待缓存对象的缓存过期时间的情况下,将缓存过期时间最近的已缓存对象释放,将待缓存对象进行缓存;或者在已缓存对象的缓存过期时间均晚于待缓存对象的缓存过期时间的情况下,将待缓存对象进行释放。在一些实施例中,在缓存过期时间最近的已缓存对象有多个的情况下,根据预设缓存置换策略选取已缓存对象进行释放。在一些实施例中,缓存区被划分为第一缓存区和第二缓存区,其中,第一缓存区用于对缓存持续时间为预设最低值的对象进行缓存,第二缓存区用于对缓存持续时间不为预设最低值的对象进行缓存;在存在已缓存对象的缓存过期时间早于待缓存对象的缓存过期时间的情况下,将缓存过期时间最近的已缓存对象释放,将待缓存对象进行缓存包括:在待缓存对象的缓存持续时间大于预设最低值,且第一缓存区不为空的情况下,根据预设缓存置换策略选取第一缓存区中的已缓存对象进行释放,扩大第二缓存区空间,将待缓存对象存入第二缓存区;或者在待缓存对象的缓存持续时间大于预设最低值,且第一缓存区为空的情况下,选取第二缓存区中的缓存过期时间最近的已缓存对象进行释放,将待缓存对象存入第二缓存区。在一些实施例中,根据待缓存对象的缓存过期时间和已缓存对象的缓存过期时间的比对情况,对待缓存对象进行处理还包括:在待缓存对象的缓存持续时间为预设最低值,且第一缓存区不为空的情况下,根据预设缓存置换策略选取第一缓存区中的已缓存对象进行释放,将待缓存对象存入第一缓存区;在待缓存对象的缓存持续时间为预设最低值,且第一缓存区为空的情况下,将待缓存对象进行释放。在一些实施例中,该方法还包括:在缓存区剩余空间足够对待缓存对象进行缓存的情况下,将待缓存对象进行缓存。在一些实施例中,缓存区被划分为第一缓存区和第二缓存区,其中,第一缓存区用于对缓存持续时间为预设最低值的对象进行缓存,第二缓存区用于对缓存持续时间不为预设最低值的对象进行缓存;在缓存区剩余空间足够对待缓存对象进行缓存的情况下,将述待缓存对象进行缓存包括:在待缓存对象的缓存持续时间为预设最低值的情况下,扩大第一缓存区空间,将待缓存对象存入第一缓存区;或者在待缓存对象的缓存持续时间不为预设最低值的情况下,扩大第二缓存区空间,将待缓存对象存入第二缓存区。根据本公开的另一些实施例,提供的一种缓存控制装置,包括:待缓存信息获取模块,用于获取待缓存对象和待缓存对象的缓存持续时间;缓存空间确定模块,用于确定缓存区剩余空间是否足够对待缓存对象进行缓存;缓存控制模块,用于在缓存区剩余空间不足够对待缓存对象进行缓存的情况下,根据待缓存对象的缓存过期时间和已缓存对象的缓存过期时间的比对情况,对待缓存对象进行处理;其中,待缓存对象的缓存过期时间为当前时刻加上缓存持续时间,已缓存对象的缓存过期时间为缓存时刻加上缓存持续时间。在一些实施例中,缓存控制模块用于在存在已缓存对象的缓存过期时间早于待缓存对象的缓存过期时间的情况下,将缓存过期时间最近的已缓存对象释放,将待缓存对象进行缓存;或者在已缓存对象的缓存过期时间均晚于待缓存对象的缓存过期时间的情况下,将待缓存对象进行释放。在一些实施例中,缓存控制模块用于在缓存过期时间最近的已缓存对象有多个的情况下,根据预设缓存置换策略选取已缓存对象进行释放。在一些实施例中,缓存区被划分为第一缓存区和第二缓存区,其中,第一缓存区用于对缓存持续时间为预设最低值的对象进行缓存,第二缓存区用于对缓存持续时间不为预设最低值的对象进行缓存;缓存控制模块用于在待缓存对象的缓存持续时间大于预设最低值,且第一缓存区不为空的情况下,根据预设缓存置换策略选取第一缓存区中的已缓存对象进行释放,扩大第二缓存区空间,将待缓存对象存入第二缓存区;或者在待缓存对象的缓存持续时间大于预设最低值,且第一缓存区为空的情况下,选取第二缓存区中的缓存过期时间最近的已缓存对象进行释放,将待缓存对象存入第二缓存区。在一些实施例中,缓存控制模块还用于在待缓存对象的缓存持续时间为预设最低值,且第一缓存区不为空的情况下,根据预设缓存置换策略选取第一缓存区中的已缓存对象进行释放,将待缓存对象存入第一缓存区;在待缓存对象的缓存持续时间为预设最低值,且第一缓存区为空的情况下,将待缓存对象进行释放。在一些实施例中,缓存控制模块还用于在缓存区剩余空间足够对待缓存对象进行缓存的情况下,将待缓存对象进行缓存。在一些实施例中,缓存区被划分为第一缓存区和第二缓存区,其中,第一缓存区用于对缓存持续时间为预设最低值的对象进行缓存,第二缓存区用于对缓存持续时间不为预设最低值的对象进行缓存;缓存控制模块还用于在待缓存对象的缓存持续时间为预设最低值的情况下,扩大第一缓存区空间,将待缓存对象存入第一缓存区;或者在待缓存对象的缓存持续时间不为预设最低值的情况下,扩大第二缓存区空间,将待缓存对象存入第二缓存区。根据本公开的又一些实施例,提供的一种缓本文档来自技高网...

【技术保护点】
1.一种缓存控制方法,包括:/n获取待缓存对象和所述待缓存对象的缓存持续时间;/n确定缓存区剩余空间是否足够对所述待缓存对象进行缓存;/n在缓存区剩余空间不足够对所述待缓存对象进行缓存的情况下,根据所述待缓存对象的缓存过期时间和已缓存对象的缓存过期时间的比对情况,对所述待缓存对象进行处理;/n其中,所述待缓存对象的缓存过期时间为当前时刻加上缓存持续时间,所述已缓存对象的缓存过期时间为缓存时刻加上缓存持续时间。/n

【技术特征摘要】
1.一种缓存控制方法,包括:
获取待缓存对象和所述待缓存对象的缓存持续时间;
确定缓存区剩余空间是否足够对所述待缓存对象进行缓存;
在缓存区剩余空间不足够对所述待缓存对象进行缓存的情况下,根据所述待缓存对象的缓存过期时间和已缓存对象的缓存过期时间的比对情况,对所述待缓存对象进行处理;
其中,所述待缓存对象的缓存过期时间为当前时刻加上缓存持续时间,所述已缓存对象的缓存过期时间为缓存时刻加上缓存持续时间。


2.根据权利要求1所述的缓存控制方法,其中,
所述根据所述待缓存对象的缓存过期时间和已缓存对象的缓存过期时间的比对情况,对所述待缓存对象进行处理包括:
在存在已缓存对象的缓存过期时间早于所述待缓存对象的缓存过期时间的情况下,将缓存过期时间最近的已缓存对象释放,将所述待缓存对象进行缓存;或者
在已缓存对象的缓存过期时间均晚于所述待缓存对象的缓存过期时间的情况下,将所述待缓存对象进行释放。


3.根据权利要求2所述的缓存控制方法,其中,
在缓存过期时间最近的已缓存对象有多个的情况下,根据预设缓存置换策略选取已缓存对象进行释放。


4.根据权利要求2所述的缓存控制方法,其中,
所述缓存区被划分为第一缓存区和第二缓存区,其中,所述第一缓存区用于对缓存持续时间为预设最低值的对象进行缓存,所述第二缓存区用于对缓存持续时间不为预设最低值的对象进行缓存;
所述在存在已缓存对象的缓存过期时间早于所述待缓存对象的缓存过期时间的情况下,将缓存过期时间最近的已缓存对象释放,将所述待缓存对象进行缓存包括:
在所述待缓存对象的缓存持续时间大于预设最低值,且所述第一缓存区不为空的情况下,根据预设缓存置换策略选取所述第一缓存区中的已缓存对象进行释放,扩大所述第二缓存区空间,将所述待缓存对象存入所述第二缓存区;或者
在所述待缓存对象的缓存持续时间大于预设最低值,且所述第一缓存区为空的情况下,选取所述第二缓存区中的缓存过期时间最近的已缓存对象进行释放,将所述待缓存对象存入所述第二缓存区。


5.根据权利要求4所述的缓存控制方法,其中,
所述根据所述待缓存对象的缓存过期时间和已缓存对象的缓存过期时间的比对情况,对所述待缓存对象进行处理还包括:
在所述待缓存对象的缓存持续时间为预设最低值,且所述第一缓存区不为空的情况下,根据预设缓存置换策略选取所述第一缓存区中的已缓存对象进行释放,将所述待缓存对象存入所述第一缓存区;
在所述待缓存对象的缓存持续时间为预设最低值,且所述第一缓存区为空的情况下,将所述待缓存对象进行释放。


6.根据权利要求1所述的缓存控制方法,还包括:
在缓存区剩余空间足够对所述待缓存对象进行缓存的情况下,将所述待缓存对象进行缓存。


7.根据权利要求6所述的缓存控制方法,其中,
所述缓存区被划分为第一缓存区和第二缓存区,其中,所述第一缓存区用于对缓存持续时间为预设最低值的对象进行缓存,所述第二缓存区用于对缓存持续时间不为预设最低值的对象进行缓存;
所述在缓存区剩余空间足够对所述待缓存对象进行缓存的情况下,将所述述待缓存对象进行缓存包括:
在所述待缓存对象的缓存持续时间为预设最低值的情况下,扩大所述第一缓存区空间,将所述待缓存对象存入所述第一缓存区;或者
在所述待缓存对象的缓存持续时间不为预设最低值的情况下,扩大所述第二缓存区空间,将所述待缓存对象存入所述第二缓存区。


8.一种...

【专利技术属性】
技术研发人员:刘洪通吴维伟杨海勤王志远毛宝龙
申请(专利权)人:北京京东尚科信息技术有限公司北京京东世纪贸易有限公司
类型:发明
国别省市:北京;11

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

1
相关领域技术
  • 暂无相关专利