[发明专利]一种提高应用缓存利用率的方法及装置有效
| 申请号: | 202010472351.8 | 申请日: | 2020-05-29 |
| 公开(公告)号: | CN111737254B | 公开(公告)日: | 2022-12-23 |
| 发明(设计)人: | 朱冰阳 | 申请(专利权)人: | 苏州浪潮智能科技有限公司 |
| 主分类号: | G06F16/22 | 分类号: | G06F16/22;G06F16/2455 |
| 代理公司: | 济南舜源专利事务所有限公司 37205 | 代理人: | 刘雪萍 |
| 地址: | 215100 江苏省苏州市吴*** | 国省代码: | 江苏;32 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 提高 应用 缓存 利用率 方法 装置 | ||
本发明公开一种提高应用缓存利用率的方法及装置,为缓存中每条数据记录增加一过期时间;为缓存设置一全局定时器;全局定时器定时扫描缓存内数据,根据每条数据记录的过期时间确定出过期数据;将过期数据删除。本发明使用一个全局定时器做全局扫描,减少数据记录定时器的数量,加速了判断数据过期的时间间隔,不再被动的等待检测是否过期。另外,本发明利用数据过期时间为缓存的数据构建索引,在批量删除的时候会先根据索引找到对应的数据记录,然后再进行批量删除,提高删除效率。
技术领域
本发明涉及应用缓存领域,具体涉及一种提高应用缓存利用率的方法及装置。
背景技术
当企业应用对外提供服务时,应用的性能往往影响着用户体验。影响应用性能的因素有很多,其中比较常见的有CPU,内存,IO等。CPU的运算速度远大于磁盘的读写速度。因此为了提高应用的性能,目前常见的做法是将经常被访问的数据放入缓存中,下次再访问相同的数据时,首先从缓存中查找,如果缓存中找到了相应的数据,就不必再读取硬盘从而减少磁盘的IO次数。缓存技术越来越多地被应用在项目中,但是如果缓存过期策略如果规划不好的话,会造成缓存中长期存放着大量无用的数据。使得应用无法有效的利用缓存,最终还是需要不断的访问磁盘。导致应用的性能下降。
为了及时高效的删除缓存中无用的数据,需引入缓存过期机制,目前常见的做法有以下两种。
方法一:主动删除
该方法在数据记录第一次从硬盘读入缓存时,为每一条数据记录分配一个定时器,对数据记录的过期时间进行实时监控。如果当前时间到达了数据记录的过期时间点,定时器会触发数据删除动作,将该数据记录自动的从缓存中删除,释放缓存空间,以便新的数据记录加载进来。
该方法的缺点:定时器会实时的监控数据记录的过期时间,因此需要不断的拿当前时间与过期时间进行比较,非常占用CPU资源。同时,定时器本身也会占用一部分内存空间,如果为每一条数据记录都分配一个定时器,也会占用大量的内存空间,导致内存中可缓存的真正的数据记录数量减少。
方法二:被动删除
数据记录过期时间到之后,并不会立即从缓存中删除,而是会在下次数据被访问时才会判断是否过期。如果到达了过期时间,再去过期删除操作。这样做的好处的不用再为每个数据记录分配定时器,减轻CPU负担。
该方法缺点:但是这种方法也有自身的缺点,一旦某条数据记录一直不被访问的话,那么该记录永远不会被删除,会一直占用缓存空间。久而久之,缓存中还是会存在大量的无用数据,导致应用性能下降。
发明内容
为解决上述问题,本发明提供一种提高应用缓存利用率的方法及装置,为每条数据记录增加过期时间,使用一个全局定时器进行全局扫描,有效提高缓存利用率。
本发明的技术方案是:一种提高应用缓存利用率的方法,包括以下步骤:
为缓存中每条数据记录增加一过期时间;
为缓存设置一全局定时器;
全局定时器定时扫描缓存内数据,根据每条数据记录的过期时间确定出过期数据;
将过期数据删除。
进一步地,该方法还包括以下步骤:
利用每条数据记录的过期时间构建索引树,索引树中每一个节点的key标记数据记录的过期时间,对应的value为对应数据记录在缓存中真实地址信息。
进一步地,利用每条数据记录的过期时间构建索引树,具体包括:
根据数据记录的过期时间找到应插入索引树的位置,将该数据记录插入对应叶子节点。
进一步地,根据数据记录的过期时间找到应插入索引树的位置,将该数据记录插入对应叶子节点,具体包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于苏州浪潮智能科技有限公司,未经苏州浪潮智能科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010472351.8/2.html,转载请声明来源钻瓜专利网。





