java中缓存手法很多,今天试了一下com.github.benmanes.caffeine.cache.Cache,感觉很好用
该缓存有两种策略
expireAfterAccess 每次读取之后,就续期设定时间
expireAfterWrite 写入之后,设定时候到了就过期,两种过期策略同时设定,默认改方法生效。
private static Cache<String, String> roleCache = null;
public static void main(String[] args) throws InterruptedException {
int i = 0;
roleCache = Caffeine.newBuilder()
//这种写法,每次读取之后,5s超时,读一次,续期一次。
.expireAfterAccess(5, TimeUnit.SECONDS)
//这种写法,写进去以后,5秒超时,不能续期,两种方法都写,该方法生效。
.expireAfterWrite(5, TimeUnit.SECONDS)
.maximumSize(100)
.build();
roleCache.put("cache","cache");
ConcurrentMap<String,String> cacheMap = roleCache.asMap();
cacheMap.put("map","map");
while (true){
Thread.sleep(1000L);
if(cacheMap.containsKey("cache")){
System.out.println("=============="+roleCache.getIfPresent("cache"));
} else {
System.out.println("============== cache no found cache" );
}
if(cacheMap.containsKey("map")){
System.out.println("=============="+roleCache.getIfPresent("map"));
} else {
System.out.println("============== cache no found map" );
}
i++;
if(i>100){
break;
}
}
}
最后
以上就是活力蜻蜓最近收集整理的关于java缓存之com.github.benmanes.caffeine.cache.Cache的全部内容,更多相关java缓存之com内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复