标签:
在缓存设计中有两点是必须要考虑的:
其中,缓存的过期策略是重点,因为缓存的存储空间往往是有限的,当缓存中的存储块被用完,就需要把过期的缓存移除掉,所以我们需要设计一种良好的缓存淘汰算法来实现。业界中常用的淘汰算法有
LRU和LFU的区别是,LFU算法是根据一段时间里缓存数据项被使用的次数,选择出最少使用的数据项。即根据使用次数的差异来决定淘汰的。而LRU是根据使用时间的差异来决定的。
我们在设计缓存时除了上面说道的两点外,效率问题也至关重要。这就要涉及到到数据结构了。
当然缓存的淘汰算法不止这些,还有LRU-K、2Q、MQ等算法,就不再细说了。在这里我们选择一个最常用也很重要的LRU算法,采用双向链表+哈希表来实现下
2、设计一个键值对结构,用来存储缓存列表
3、实现ICache,LRU算法
最后,奉上源码下载连接
标签:
原文地址:http://www.cnblogs.com/Khadron/p/Cache_Note_2.html