包含如下内容:
一. LRU算法
二. 算法实现
实现1 基于LinkedHashMap,线程安全的java实现
实现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
分享到:
相关推荐
LRU算法LRU算法LRU算法LRU算法
LRU算法实现LRU算法实现LRU算法实现LRU算法实现LRU算法实现
LRU算法 1.cpp 1.exe LRU FIFO REPORTMENT
使用c语言是实现的LRU算法,带测试用例,供大家学习参考使用
LRU算法LRU算法LRU算法LRU算法LRU算法LRU算法
使用LRU算法实现页面置换算法。LRU算法基于一种假设,长期不使用的数据,在未来的使用性也不大。因此,当数据占用内存达到一定的阙值时,我们要移除最近最少使用的数据。LRU算法中,使用了一种有趣的数据结构,叫做...
这个是关于lru算法实验报告,大家欢迎使用
该资源是Java实现LRU算法的相关代码,将页面序号和进程分配的模块数,运行出具体的变化过程,真实可靠,可实现。
理解各类置换算法的原理和虚拟存储器管理的方法。理解LRU或CLOCK改进算法等置换算法; 设计与算法相关的数据结构,如:LRU的堆栈或CLOCK改进算法中的循环结构;
LRU算法的java实现
近期最少使用算法
这是一个LRU演示算法demo,通过这个Demo,你可以轻松了解LRU的整个原理过程。
操作系统中的一个算法 C++实现的,Lru算法
页面置换算法LRU
LRU this is a LRU!this is a LRU!this is a LRU!
对比FIFO/LRU两种算法的命中率。有源程序,有结果,有对比说明,有测试用例。
lru算法的实现
最近最久未使用(LRU) 选择最后一次访问时间距离当前时间最长的一页并淘汰之 LRU软件实现 设置一个页号栈, 当一个页面被访问时,就立即将它的页号压入页号栈,并检查页号栈中是否有与刚压入栈顶的相同的页号,若...
(1) LRU:内存管理的一种页面置换算法,对于在内存中但又不用的数据块(内存块)叫做LRU,操作系统会根据哪些数据属于LRU而将其移出内存而腾出空间来加载另外的数据。 (2) LRU算法:LRU是Least Recently Used的...
基于C语言的FIFO和LRU算法的实现。