`
Tonyguxu
  • 浏览: 271672 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论
阅读更多

包含如下内容:


一. LRU算法

http://nemogu.iteye.com/blog/1415874

http://nemogu.iteye.com/blog/1552318

 

二. 算法实现

实现1 基于LinkedHashMap,线程安全的java实现

 

http://nemogu.iteye.com/blog/1418340

 

实现2 apache.commons.collections.map.LRUMap的java实现


 

 

三. 其他

1.为什么在wxxr-smslog-search项目中IndexWriter和IndexReader要存放在基于LRU算法的LRUMap里?

 

LRU指最近最少使用,该算法的一个运用场合:当一个cache已满,而有新元素会被加进来,势必要从cache里拿出一个元素出来腾出位置,这就涉及一个问题:将cache里的哪个元素拿出来呢?LRU算法可以决定让最近最少使用的元素被逐出。

在这个项目中,出于查询效率的考虑,要求 IndexReaderCache要保留90个IndexReader(最近3个月,每天一个 IndexReader ),当cache满了后,就会经常出现需要将cache中元素逐出的操作。基于上面要求,项目中考虑将IndexWriter和IndexReader存放在实现了LRU算法的LRUMap里。

 

 

四. 其他阅读文章

 

1.O(1)LRU Cache的python实现

http://code.activestate.com/recipes/252524-length-limited-o1-lru-cache-implementation/

 

2.High-Throughput, Thread-Safe, LRU Caching(ebay)

http://www.ebaytechblog.com/2011/08/30/high-throughput-thread-safe-lru-caching/

 

3.stackoverflow里关于LRU

http://stackoverflow.com/questions/221525/how-would-you-implement-an-lru-cache-in-java-6

 

4.Redis as an LRU cache

http://antirez.com/post/redis-as-LRU-cache.html

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics