JetCache
JetCache是由阿里巴巴开源的通用缓存访问框架,如果你对Spring Cache很熟悉的话,请一定花一点时间了解一下JetCache,它更好用。
JetCache提供的核心能力包括:
提供统一的,类似jsr-107风格的API访问Cache,并可通过注解创建并配置Cache实例
通过注解实现声明式的方法缓存,支持TTL和两级缓存
分布式缓存自动刷新,分布式锁 (2.2+)
支持异步Cache API
Spring Boot支持
Key的生成策略和Value的序列化策略是可以定制的
针对所有Cache实例和方法缓存的自动统计
商品缓存技术选型,一开始考虑使用Mybatis Redis二级缓存,但经实验验证不适合本项目
1.因为项目使用了Mybatis Plus,所以走二级缓存都要先配置Mybatis Plus,分页存在问题,还有关联表查询会有脏数据问题
2.作用于NamesSpaces,影响范围太大
后面使用了JetCache完成了商品缓存,实现如下:
后台管理系统对商品进行增改和上下架的时候删除对应的商品缓存,key是商品id,因为没有做商品删除,有删除也要加上注解。
@CacheInvalidate(name = Constant.PRODUCTDETAIL, key = "#productDto.id")
ResultMap saveOrUpdate(ProductAdminDto productDto, String id, String username);
@CacheIn