本文介绍: 通过本文章,可以完成多级缓存架构中的进程缓存。
通过本文章,可以完成多级缓存架构中的进程缓存。
一、引入依赖
在item-service
中引入caffeine
依赖
<dependency>
<groupId>com.github.ben-manes.caffeine</groupId>
<artifactId>caffeine</artifactId>
</dependency>
二、实现进程缓存
1. 配置Config类
创建config.CaffeineConfig
类
@Configuration
public class CaffeineConfig {
@Bean
public Cache<Long, Item> itemCache(){
return Caffeine.newBuilder()
.initialCapacity(100)
.maximumSize(10_000)
.build();
}
@Bean
public Cache<Long, ItemStock> stockCache(){
return Caffeine.newBuilder()
.initialCapacity(100)
.maximumSize(10_000)
.build();
}
}
2. 修改controller
在ItemController
中注入两个Cache
对象,并修改业务逻辑
@RestController
@RequestMapping("item")
public class ItemController {
@Autowired
private IItemService itemService;
@Autowired
private IItemStockService stockService;
@Autowired
private Cache<Long, Item> itemCache;
@Autowired
private Cache<Long, ItemStock> stockCache;
@GetMapping("/{id}")
public Item findById(@PathVariable("id") Long id){
return itemCache.get(id, key->
itemService.query()
.ne("status", 3).eq("id", id)
.one()
);
// return itemService.query()
// .ne("status", 3).eq("id", id)
// .one();
}
@GetMapping("/stock/{id}")
public ItemStock findStockById(@PathVariable("id") Long id){
return stockCache.get(id, key->
stockService.getById(id)
);
// return stockService.getById(id);
}
}
三、运行
Idea结合Docker将springboot放入docker容器中运行,并指定使用multi-cache_multi-cache
网络,以及固定172.30.3.4
地址。
详细参考如下文章
启动好后,可以看到springboot
容器和mysql容器处于同一网络下。(Docker Desktop for Windows插件PortNavigator)
四、测试
访问http://localhost:8081/item/10001
可以看到springboot
日志输出如下
02:45:58:841 DEBUG 1 --- [nio-8081-exec-1] c.h.item.mapper.ItemMapper.selectOne : ==> Preparing: SELECT id,name,title,price,image,category,brand,spec,status,create_time,update_time FROM tb_item WHERE (status <> ? AND id = ?)
02:45:58:889 DEBUG 1 --- [nio-8081-exec-1] c.h.item.mapper.ItemMapper.selectOne : ==> Parameters: 3(Integer), 10001(Long)
02:45:58:951 DEBUG 1 --- [nio-8081-exec-1] c.h.item.mapper.ItemMapper.selectOne : <== Total: 1
当我们二次访问此网址,强制刷新+禁用浏览器缓存+更换浏览器,springboot
日志都没有新的查询记录,说明使用了Caffeine
缓存。
原文地址:https://blog.csdn.net/m0_51390969/article/details/135545430
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_57485.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。