[发明专利]基于LRU算法的高可用缓存方法、存储装置以及电子设备有效
申请号: | 202110127890.2 | 申请日: | 2021-01-29 |
公开(公告)号: | CN112860185B | 公开(公告)日: | 2022-11-25 |
发明(设计)人: | 钱晓林;齐宇 | 申请(专利权)人: | 西藏宁算科技集团有限公司 |
主分类号: | G06F3/06 | 分类号: | G06F3/06 |
代理公司: | 成都市鼎宏恒业知识产权代理事务所(特殊普通合伙) 51248 | 代理人: | 张勋 |
地址: | 850000 西藏自*** | 国省代码: | 西藏;54 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 lru 算法 可用 缓存 方法 存储 装置 以及 电子设备 | ||
一种基于LRU算法的高可用缓存方法,涉及缓存技术领域,其运算方式简单易行,通过将缓存划分为第一链表和第二链表两个区域,将冷数据和热数据分开,有效避免了冷数据对热数据的影响,同时保证了数据更新的实时性,实现了一个缓存命中率高且不受冷数据影响的缓存。本发明实施例还提供了一种存储装置以及电子设备,其采用上述高可用缓存方法,运算方式简单易行,既可以有效避免的冷数据对热数据的影响,又可以确保热数据更新的实时性,达到更佳的缓存命中率。
技术领域
本发明涉及缓存技术领域,具体而言,涉及一种基于LRU算法的高可用缓存方法、存储装置以及电子设备。
背景技术
为了提高数据查询的速度,解决计算机读取磁盘速度慢的问题,缓存技术得到了广泛的应用。但是由于计算机内存大小明显小于磁盘大小,所以不可能将全部数据都放入缓存中,那么如何保证缓存的命中率成了缓存技术的重点。
现有常用的缓存淘汰策略有LRU(Least Recently Used)和 LFU(leastfrequently used)算法。LRU算法是选择最近最久未使用的数据予以淘汰,也即是说,在数据存储后需要存储新数据的时候,会将按照使用时间顺序进行淘汰,这样会导致冷数据可能会替换掉热数据,从而影响缓存命中率。而LFU算法则是完全按照使用频率进行排序,在数据存储后需要存储新数据的时候,会优先将使用频率低的数据进行淘汰,这样又会导致如果某一数据在一开始时热度过高,其排名会非常靠前,并且将会长久保存在缓存中难以被替换掉,导致热数据更新实时性差。综上所述,现有技术中缺乏一种既能避免冷数据替换热数据,又能保证较佳实时性的缓存方法。
发明内容
本发明的目的在于提供一种基于LRU算法的高可用缓存方法、存储装置以及电子设备,其运算方式简单易行,既可以有效避免的冷数据对热数据的影响,又可以确保热数据更新的实时性,达到更佳的缓存命中率。
本发明的实施例是这样实现的:
一种基于LRU算法的高可用缓存方法,其包括:
S1. 在内存中创建至少两个链表用于存储缓存数据,分别为第一链表和第二链表;第一链表在存满之后再存入新数据时,会淘汰位于其链尾位置的数据进入第二链表;第二链表在存满之后再存入新数据时,会移除位于其链尾位置的数据;
S2. 在访问数据时对内存中的缓存数据进行查询,若缓存数据中没有目标数据,则将目标数据写入第二链表的链头位置;若缓存数据中存在目标数据,则将目标数据更新至第一链表的链头位置。
进一步地,在本发明其它较佳实施例中,在S2步骤中,若缓存数据中存在目标数据则进入S3步骤;
S3. 对第一链表中的缓存数据进行查询,若第一链表中存在目标数据,则将目标数据更新至第一链表的链头位置;若第一链表中不存在目标数据,则进入S4步骤;
S4. 对第二链表中的缓存数据进行查询,若目标数据在第二链表中存在时长大于预设的时间阈值,则将目标数据更新至第一链表的链头位置;若目标数据在第二链表中存在的时长小于时间阈值,则保持目标数据的位置不变。
进一步地,在本发明其它较佳实施例中,第一链表和第二链表的内存大小比例为1:0.5~0.7。
进一步地,在本发明其它较佳实施例中,时间阈值为2000~5000 ms。
一种基于LRU算法的存储装置,其包括:
存储模块,存储模块中包括至少两个链表用于存储缓存数据,分别为第一链表和第二链表;
第一查询判定模块,用于在访问数据时对缓存数据进行查询,并判定其位置情况;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于西藏宁算科技集团有限公司,未经西藏宁算科技集团有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110127890.2/2.html,转载请声明来源钻瓜专利网。