【技术实现步骤摘要】
缓存控制方法、装置和计算机可读存储介质
本公开涉及计算机
,特别涉及一种缓存控制方法、装置和计算机可读存储介质。
技术介绍
计算机操作系统中有很多设计用到缓存。例如,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
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。