提到缓存,有两点是必须要考虑的:
(1)缓存数据和目标数据的一致性问题。
(2)缓存的过期策略(机制)。
其中,缓存的过期策略涉及淘汰算法。常用的淘汰算法有下面几种:
(1)FIFO:First In First Out,先进先出
(2)LRU :Least Recently Used, 最近最少使用
(3)LFU :Least Frequently Used,最不经常使用
(1)缓存数据和目标数据的一致性问题。
(2)缓存的过期策略(机制)。
(1)FIFO:First In First Out,先进先出
(2)LRU :Least Recently Used, 最近最少使用
(3)LFU :Least Frequently Used,最不经常使用
注意LRU和LFU的区别。
LFU算法:是根据在一段时间里数据项被使用的【次数】 选择出最少使用的数据项,即根据使用次数的差异来决定。
而LFU关键是看一定时间段内页面被使用的【频率】!
而LFU关键是看一定时间段内页面被使用的【频率】!
LRU算法 :是根据使用时间的差异来决定的。
可见LRU关键是看页面最后一次被使用到发生调度的时间长短。
可见LRU关键是看页面最后一次被使用到发生调度的时间长短。
一个优秀的缓存框架必须实现以上的所有缓存机制。例如:
Ehcache
就实现了上面的所有策略。