一种缓存淘汰方法、装置及电子设备制造方法及图纸

技术编号:27246311 阅读:50 留言:0更新日期:2021-02-04 12:20
本发明专利技术提供了一种缓存淘汰方法、装置及电子设备,属于网络设备技术领域,解决了现有的缓存淘汰算法存在缓存命中率低的技术问题。一种缓存淘汰方法,应用于电子设备,其中电子设备的内存中包括第一缓存链表、第二缓存链表、第一历史记录链表和第二历史记录链表,方法包括以下步骤:判断当前访问数据所处的位置;若当前访问数据出现在第一缓存链表中,则将当前访问数据插入第二缓存链表的表头,且从第一缓存链表中删除;若当前访问数据未出现在第一缓存链表中,则判断当前访问数据是否出现在第二缓存链表中;若当前访问数据出现在第二缓存链表中,则将当前访问数据移动到第二缓存链表的表头。表头。表头。

【技术实现步骤摘要】
一种缓存淘汰方法、装置及电子设备


[0001]本专利技术涉及网络设备
,尤其是涉及一种缓存淘汰方法、装置及计算机可读存介质。

技术介绍

[0002]随着网络技术的不断发展,电子设备的使用频率越来越高,其中存储结构的优化对电子设备的性能起到重要影响。
[0003]目前,磁盘中的某些数据,可能会被频繁使用,从磁盘中获取数据,需要耗费较长的时间。对于常用的数据,使用时从磁盘中获取,读完后释放,对于磁盘属于一种极大的资源浪费,频繁的输入/输出((Input/Output,简称IO)操作,耗费中央处理器(central processing unit,简称CPU)。若对于常用的数据,缓存到内存中,读取数据时,从内存中读取数据,比从磁盘中读取,消耗的时间要小得多。但内存是有限的,不可能把所有数据都加载到内存中,这就需要设计一种算法,将近期常用的数据缓存到内存中,对于最近不再使用的数据,从内存中释放掉。至于哪些数据可能是最近不会被访问到的,这就是缓存领域研究的重点——缓存淘汰算法。常见的缓存淘汰算法有最近最少使用(Least Recently Used,简称LRU)、最不经常使用(least frequently used,简称LFU)、先进先出(First Input First Output,简称FIFO)等,这些算法存在着各种不足。LRU淘汰最远时间戳的数据,但对于循环访问大批量的数据,缓存效果不明显;LFU淘汰访问频率低的缓存数据,但对新数据不够友好,访问频率高的历史数据很难被淘汰;FIFO,即先进先出,若缓存空间较小,对经常访问的数据不能起到很好的缓存效果。采用以上方法都会在一定程度上影响缓存效果,降低了缓存的命中率。
[0004]因此,现有的缓存淘汰算法存在缓存命中率低的技术问题。

技术实现思路

[0005]本专利技术的目的在于提供一种缓存淘汰方法、装置、电子设备及计算机可读存介质,解决了现有的缓存淘汰算法存在缓存命中率低的技术问题。
[0006]第一方面,本专利技术提供一种缓存淘汰方法,应用于电子设备,其中所述电子设备的内存中包括第一缓存链表、第二缓存链表、第一历史记录链表和第二历史记录链表,第一缓存链表用于缓存访问一次的最近访问数据,第二缓存链表用于缓存访问多于一次的最近访问数据,第一历史记录链表用于记录第一缓存链表中最近删除的访问记录,第二历史记录链表用于记录第二缓存链表中最近删除的访问记录,所述方法包括以下步骤:
[0007]判断当前访问数据所处的位置;
[0008]若当前访问数据出现在第一缓存链表中,则将当前访问数据插入第二缓存链表的表头,且从第一缓存链表中删除;
[0009]若当前访问数据未出现在第一缓存链表中,则判断当前访问数据是否出现在第二缓存链表中;
[0010]若当前访问数据出现在第二缓存链表中,则将当前访问数据移动到第二缓存链表的表头;
[0011]若当前访问数据未出现在第二缓存链表中,则判断当前访问数据是否出现在第一历史记录链表中;
[0012]若当前访问数据未出现在第一历史记录链表中,则判断当前访问数据是否出现在第二历史记录链表中;
[0013]若当前访问数据在第一缓存链表、第二缓存链表、第一历史记录链表和第二历史记录链表中均未出现,则将当前访问数据插入到第一缓存链表的表头。
[0014]进一步的,若当前访问数据未出现在第二缓存链表中,则判断当前访问数据是否出现在第一历史记录链表中的步骤之后,还包括:若当前访问数据的访问记录出现在第一历史记录链表中,则增加第一缓存链表长度,减少第二缓存链表长度;
[0015]若当前访问数据未出现在第一历史记录链表中,则判断当前访问数据是否出现在第二历史记录链表中的步骤之后,还包括若当前访问数据的访问记录出现在第二历史记录链表中,则增加第二缓存链表长度,减少第一缓存链表长度。
[0016]进一步的,当第一缓存链表填满时,删除第一缓存链表尾部的访问数据,并将该访问数据记录插入第一历史记录链表的表头;
[0017]当第二缓存链表填满时,删除第二缓存链表尾部的访问数据,并将该访问数据记录插入第二历史记录链表的表头。
[0018]进一步的,当第一历史记录链表或第二历史记录链表填满时,则删除所述第一历史记录链表或所述第二历史记录链表的尾部记录。
[0019]进一步的,第一缓存链表与第二缓存链表的链表长度之和为固定值。
[0020]进一步的,若当前访问数据的访问记录出现在第一历史记录链表中,则增加第一缓存链表长度,减少第二缓存链表长度的步骤之后,还包括:
[0021]将当前访问数据插入第一缓存链表的表头,并在第一历史记录链表中删除此记录。
[0022]进一步的,若当前访问数据的访问记录出现在第二历史记录链表中,则增加第二缓存链表长度,减少第一缓存链表长度的步骤之后,还包括:
[0023]将当前访问数据插入第二缓存链表的表头,并在第二历史记录链表中删除此记录。
[0024]第二方面,一种缓存淘汰装置,应用于电子设备,其中所述电子设备的内存中包括第一缓存链表、第二缓存链表、第一历史记录链表和第二历史记录链表,第一缓存链表用于缓存访问一次的最近访问数据,第二缓存链表用于缓存访问多于一次的最近访问数据,第一历史记录链表用于记录第一缓存链表中最近删除的访问记录,第二历史记录链表用于记录第二缓存链表中最近删除的访问记录,所述装置包括:
[0025]判断模块,用于判断当前访问数据所处的位置;
[0026]执行模块,用于执行以下内容,若当前访问数据出现在第一缓存链表中,则将当前访问数据插入第二缓存链表的表头,且从第一缓存链表中删除;若当前访问数据未出现在第一缓存链表中,则判断当前访问数据是否出现在第二缓存链表中;若当前访问数据出现在第二缓存链表中,则将当前访问数据移动到第二缓存链表的表头;若当前访问数据未出
现在第二缓存链表中,则判断当前访问数据是否出现在第一历史记录链表中;若当前访问数据未出现在第一历史记录链表中,则判断当前访问数据是否出现在第二历史记录链表中;若当前访问数据在第一缓存链表、第二缓存链表、第一历史记录链表和第二历史记录链表中均未出现,则将当前访问数据插入到第一缓存链表的表头。
[0027]第三方面,本专利技术还提供一种电子设备,包括存储器、处理器,所述存储器中存储有可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现第一方面的方法步骤。
[0028]第四方面,本专利技术还提供一种计算机可读存储介质,所述计算机可读存储介质存储有机器可运行指令,所述计算机可运行指令在被处理器调用和运行时,所述计算机可运行指令促使所述处理器运行第一方面的方法。
[0029]本专利技术提供的一种缓存淘汰方法,应用于电子设备,其中电子设备的内存中包括第一缓存链表、第二缓存链表、第一历史记录链表和第二历史记录链表,第一缓存链表用于缓存访问一次的最近访问数据,第二缓存链表用于缓存访问多于一次的最本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种缓存淘汰方法,其特征在于,应用于电子设备,其中所述电子设备的内存中包括第一缓存链表、第二缓存链表、第一历史记录链表和第二历史记录链表,第一缓存链表用于缓存访问一次的最近访问数据,第二缓存链表用于缓存访问多于一次的最近访问数据,第一历史记录链表用于记录第一缓存链表中最近删除的访问记录,第二历史记录链表用于记录第二缓存链表中最近删除的访问记录,所述方法包括以下步骤:判断当前访问数据所处的位置;若当前访问数据出现在第一缓存链表中,则将当前访问数据插入第二缓存链表的表头,且从第一缓存链表中删除;若当前访问数据未出现在第一缓存链表中,则判断当前访问数据是否出现在第二缓存链表中;若当前访问数据出现在第二缓存链表中,则将当前访问数据移动到第二缓存链表的表头;若当前访问数据未出现在第二缓存链表中,则判断当前访问数据是否出现在第一历史记录链表中;若当前访问数据未出现在第一历史记录链表中,则判断当前访问数据是否出现在第二历史记录链表中;若当前访问数据在第一缓存链表、第二缓存链表、第一历史记录链表和第二历史记录链表中均未出现,则将当前访问数据插入到第一缓存链表的表头。2.根据权利要求1所述的缓存淘汰方法,其特征在于,若当前访问数据未出现在第二缓存链表中,则判断当前访问数据是否出现在第一历史记录链表中的步骤之后,还包括:若当前访问数据的访问记录出现在第一历史记录链表中,则增加第一缓存链表长度,减少第二缓存链表长度;若当前访问数据未出现在第一历史记录链表中,则判断当前访问数据是否出现在第二历史记录链表中的步骤之后,还包括若当前访问数据的访问记录出现在第二历史记录链表中,则增加第二缓存链表长度,减少第一缓存链表长度。3.根据权利要求2所述的缓存淘汰方法,其特征在于,还包括:当第一缓存链表填满时,删除第一缓存链表尾部的访问数据,并将该访问数据记录插入第一历史记录链表的表头;当第二缓存链表填满时,删除第二缓存链表尾部的访问数据,并将该访问数据记录插入第二历史记录链表的表头。4.根据权利要求1所述的缓存淘汰方法,其特征在于,当第一历史记录链表或第二历史记录链表填满时,则删除所述第一历史记录链表或所述第二历史记录链表的尾部记录。5.根据权利要求1所述的缓存淘汰方法,其特征在于,第一缓存链表与第二缓存链表...

【专利技术属性】
技术研发人员:刘少荘张亚东
申请(专利权)人:苏州浪潮智能科技有限公司
类型:发明
国别省市:

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

1