小巧的本地缓存Jodd
说到缓存,大家容易想到memcached和redis,它们大名鼎鼎,但都是远程缓存,需要通过TCP网络访问。
这些缓存服务器本身性能很好,但不管性能再怎么好,也要通过网络访问,肯定不如本地直接访问内存快。
说到本地缓存,大家最常用的是google的guava库,这个库也非常好用,但它有一个问题,就是一个内存管理服务只能设置一个过期时间,这对于需要给每一个KV对都要设置过期时间的需求就带来了麻烦,须知,memcached和redis都是可以给每一个KV对设置过期时间的。
这里介绍另外一个Java库来解决这个问题——Jodd库。
先上代码:
import jodd.cache.Cache;
import jodd.cache.LRUCache;
public class Testor {
private static final int CACHE_SIZE = 1024*1024;
public static void main(String[] args) {
Cache<String,String> cacheService = new LRUCache<String,String>(CACHE_SIZE);
String testKey = "k1";
cacheService.put(testKey, "v1",1000);
System.out.println(cacheService.get(testKey));
try {
Thread.sleep(1010);
} catch (InterruptedException e) {
// TODO Auto-generatedcatch block
e.printStackTrace();
}
System.out.println(cacheService.get(testKey));
}
}
该库的使用很简单,也没有guava库的功能强大,但在某些时候很管用。有如下的一些缓存类可供使用:
FIFOCache –先进先销毁
LFUCache –使用次数最少的先销毁
LRUCache –最近最少使用的先销毁
TimedCache –不设置缓存大小,按时间过期
补充:综合编程 , 其他综合 ,