我是靠谱客的博主 落后斑马,这篇文章主要介绍springboot 中 Guava Cache使用心得,现在分享给大家,希望可以做个参考。

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内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(104)

评论列表共有 0 条评论

立即
投稿
返回
顶部