guava缓存的使用
1.基础-Cache直接存取
普通的key-value缓存类似Map的使用:
``` public static void main(String[] args) throws Exception { //创建一个1000长度的缓存,10毫秒失效 Cache cache = CacheBuilder .newBuilder().maximumSize(1000).expireAfterWrite(10, TimeUnit.MILLISECONDS) .build(); //放入一个数据,key为1 cache.put("1", new Stu("name1")); //放入后直接取,有值 System.out.println("放入之后getIfPresent:" + cache.getIfPresent("1")); Thread.sleep(11); //休息11秒再取,已经失效,无值 System.out.println("休息11毫秒,失效后getIfPresent:" + cache.getIfPresent("1")); }
private static record Stu(String name) {
}
```
输出如下,符合预期
放入之后getIfPresent:Stu[name=name1] 休息11毫秒,失效后getIfPresent:null
2.基础-Cache并发重复加载
guava中不存在,触发回