读书人

小巧的当地缓存Jodd

发布时间: 2013-01-04 10:04:18 作者: rapoo

小巧的本地缓存Jodd

小巧的本地缓存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 不设置缓存大小,按时间过期

读书人网 >其他相关

热点推荐