guava cache使用简介
guava cache 是利用CacheBuilder类用builder模式构造出两种不同的cache加载方式CacheLoader,Callable,共同逻辑都是根据key是加载value。不同的地方在于CacheLoader的定义比较宽泛,是针对整个cache定义的,可以认为是统一的根据key值load value的方法,而Callable的方式较为灵活,允许你在get的时候指定load方法。看以下代码
1 Cache<String,Object> cache = CacheBuilder.newBuilder() 2 .expireAfterWrite(10, TimeUnit.SECONDS).maximumSize(500).build(); 3 4 cache.get("key", new Callable<Object>() { //Callable 加载 5 @Override 6 public Object call() throws Exception { 7 return "value"; 8 } 9 }); 10 11 LoadingCache<String, Object> loadingCache = CacheBuilder.newBuilder() 12 .expireAfterAccess(30, TimeUnit.SECONDS).maximumSize(5) 13 .build(new CacheLoader<String, Object>() { 14 @Override 15 public Object load(String key) throws Exception { 16 return "value"; 17 } 18 });