找回密码
 注册

QQ登录

只需一步,快速开始

搜索
网吧三国 首页 IT技术 技术方案 查看内容

常见缓存算法

2010-11-29 13:56| 发布者: 网吧三国| 查看: 4020| 评论: 0

网吧中使用的无盘平台,其中关键的技术之一就是虚拟磁盘的缓存算法。这次我们向大家介绍几种缓存中常见的算法,让各位对缓存算法有一个比较初步的了解。 贝莱蒂算法(Belady's Algorithm) 最有效率的缓存算法会丢掉 ...

网吧中使用的无盘平台,其中关键的技术之一就是虚拟磁盘的缓存算法。这次我们向大家介绍几种缓存中常见的算法,让各位对缓存算法有一个比较初步的了解。

贝莱蒂算法(Belady's Algorithm)

最有效率的缓存算法会丢掉未来最长时间内不使用的数据。这种理想情况被称作贝莱蒂最优算法或者千里眼算法。由于要预计数据要多久后才被使用基本上是不可能的,所以这种算法没有实际的可操作性。它的作用在于为不同的缓存算法订立一个优劣标准。

最近最少使用算法(LRU,Least Recently Used)

最近最少使用算法的思路是丢弃近段时间内最少被使用的数据。要实现这种算法需要跟踪数据何时被使用,用这种方法来筛选去近一段时间被最少使用次数的数据其代价往往是昂贵的。它的实现往往是通过在缓存数据上设立时间标志位,用以跟踪最近最少被使用的缓存数据。一个数据每被使用一次,其他数据的时间标志位数值就要增加。

最近最频繁使用算法(MRU,Most Recently Used)

最近最频繁使用算法和最近最少使用算法相反,它会首先丢弃最近最常使用的数据。有观点认为“当文件在顺序访问时,MRU算法是最佳选择”,抱有这样观点人也认为在反复进行大量数据的随机存储时,MRU因为倾向于保留旧的数据,随意比LRU算法有着更高的命中率。MRU算法经常用于旧的数据更常被用到的情况下。

伪LRU算法(PLRU,Pseudo-LRU)

因为缓存有着大量的关联性,LRU算法实现的代价往往比较昂贵。如果实际情况在丢弃任一个最近最少使用的数据就能满足,那么伪LRU算法就派上用场了,它为每一个缓存数据设立一个标志位就可以工作。


鲜花

握手

雷人
1

路过

鸡蛋

刚表态过的朋友 (1 人)

  • 路过

    匿名

相关阅读

最新评论

小黑屋|手机版|Archiver|联系我们|网吧三国

GMT+8, 2024-5-5 23:31 , Processed in 0.043533 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

返回顶部