概述
1、引入包
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>27.1-jre</version>
</dependency>
2、开启缓存
application 中增加注解@EnableCaching
3、添加缓存管理器
LoadingCache<String,ReturnObject> cacheBuild = CacheBuilder.newBuilder().maximumSize(100).refreshAfterWrite(Duration.ofSeconds(20)).expireAfterWrite(Duration.ofMinutes(30)).build(CacheLoader.asyncReloading(new CacheLoader<String,ReturnObject >() {
@Override
public ReturnObject load(String key) {
//select接口
DataVO dataVO = JSONObject.parseObject(key, DataVO.class);
return
getData(dataVO);
}
}, Executors.newSingleThreadExecutor()));
1、ReturnObject 返回对象,换成自己需要的
2、DataVO 查询数据库入参,换成自己需要的
3、maximumSize(100) 设置缓存最大条目数
4、refreshAfterWrite(Duration.ofSeconds(20))刷新时间
5、expireAfterWrite(Duration.ofMinutes(30)) 回收时间
6、public ReturnObject load(String key) 方法 ,查询不到缓存数据时,走load方法去查询数据库;
7、 return getData(dataVO); 查询数据库的方法,换成自己需要的
8、LoadingCache<String,ReturnObject> cacheBuild 这个对象当作成员变量即可
4、查询数据
ReturnObject
returnObject
= cacheBuild .getUnchecked(JSONObject.toJSONString(dataVO ));
5、缓存数据生成以及查询逻辑
1、通过cacheBuild.getUnchecked(key)方法 去查询缓存,第一次会触发public ReturnObject load(String key)方法,去数据库中查询数据,在缓存有效期内会触发缓存查询,之后根据自己定义的刷新时间和回收时间当缓存数据失效时会再次触发public ReturnObject load(String key)方法
最后
以上就是落后斑马为你收集整理的springboot 中 Guava Cache使用心得的全部内容,希望文章能够帮你解决springboot 中 Guava Cache使用心得所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复