码迷,mamicode.com
首页 > 编程语言 > 详细

缓存算法

时间:2018-01-20 00:19:54      阅读:173      评论:0      收藏:0      [点我收藏+]

标签:文档   and   容量   ada   移除   class   strong   改进   实现   

在实现缓存算法的时候,通常会考虑使用频率获取成本缓存容量时间等因素。

Least-Recently-Used(LRU)

替换掉最近被请求最少的对象,也就是淘汰最长时间未被使用的对象。该算法可以通过跟踪对象的最后访问时间并依据最后访问时间排序实现。

Least-Frequently-Used(LFU)

替换掉访问次数最少的缓存,也就是淘汰一定时间内呗访问次数最少的对象。该算法可以通过跟踪对象在指定时间段内的访问次数并根据访问次数排序实现。

Least-Recently-Used(LRU2)

把被两次访问过的对象放入缓存池。当缓存池满了之后,会把有两次最少使用的缓存对象去除。

Two Queues(2Q)

把被访问的数据放到LRU的缓存中,如果这个对象再一次被访问,就把他转移到第二个、更大的LRU缓存。

SIZE

替换占用空间最大的对象。

LRU-Threshold

不缓存超过某一size的对象。

Log(Size)+LRU

替换size最大的对象,当size相同时,按LRU进行替换。

Hyper-G

LFU的改进版,同时考虑上次访问时间和对象size。

Pitkow/Recker

替换最近最少使用的对象,除非所有对象都是今天访问过的。如果是这样,则替换掉最大的对象。

Lowest-Latency-First

替换下载时间最少的文档。

Hybrid Hybrid

减少平均延迟。对缓存中的每个文档都会计算一个保留效用,保留效用最低的对象会被替换掉。

Lowest Relative Value(LRV)

LRV也是基于计算缓存中文档的保留效用,然后替换保留效用最低的文档。

Adaptive Replacement Cache(ARC)

介于LRU和LFU之间,由两个LRU组成,第一个包含的条目是最近只被使用过一次的,而第二个LRU包含的是最近被使用过两次的条目。

Most Recently Used(MRU)

移除最近最多被使用的对象。

First in First out(FIFO)

FIFO通过一个队列去跟踪所有的缓存对象,当缓存容量满时,排在前面的缓存对象会被剔除。

Random Cache

随机的替换缓存数据。

缓存算法

标签:文档   and   容量   ada   移除   class   strong   改进   实现   

原文地址:https://www.cnblogs.com/qhdxqxx/p/8319281.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!