layering-cache
生活随笔
收集整理的這篇文章主要介紹了
layering-cache
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
layering-cache
layering-cache是一個支持分布式環境的多級緩存框架,使用方式和spring-cache類似,主要目的是在使用注解的時候支持配置過期時間。
layering-cache其實是一個兩級緩存,一級緩存使用Caffeine作為本地緩存,二級緩存使用redis作為集中式緩存。并且基于redis的Pub/Sub做緩存的刪除,所以它是一個適用于分布式環境下的一個緩存系統。
支持
- 支持緩存監控統計
- 支持緩存過期時間在注解上直接配置
- 支持二級緩存的自動刷新(當緩存命中并發現緩存將要過期時會開啟一個異步線程刷新緩存)
- 刷新緩存分為強刷新和軟刷新,強刷新直接調用緩存方法,軟刷新直接改緩存的時間
- 緩存Key支持SpEL表達式
- 新增FastJsonRedisSerializer,KryoRedisSerializer序列化,重寫String序列化。
- 支持同一個緩存名稱設置不同的過期時間
- 輸出INFO級別的監控統計日志
- 二級緩存是否允許緩存NULL值支持配置
- 二級緩存空值允許配置時間倍率
快速開始
集成 Spring 4.x
- maven 方式
- gradle 方式
聲明RedisTemplate
如果項目中沒有聲明RedisTemplate Bean 可以參考下面鏈接 聲明RedisTemplate
聲明CacheManager和LayeringAspect
/*** 多級緩存配置** @author yuhao.wang3*/ @Configuration @EnableAspectJAutoProxy public class CacheConfig {@Beanpublic CacheManager cacheManager(RedisTemplate<String, Object> redisTemplate) {return new LayeringCacheManager(redisTemplate);}@Beanpublic LayeringAspect layeringAspect() {return new LayeringAspect();} }集成 Spring Boot
引入layering-cache 就可以了
<dependency><groupId>com.github.xiaolyuh</groupId><artifactId>layering-cache-starter</artifactId><version>${layering.version}</version> </dependency>使用
注解形式
直接在需要緩存的方法上加上Cacheable、CacheEvict、CachePut注解。
- Cacheable注解
- CachePut注解
- CacheEvict注解
更多使用方法可以查看官方文檔
開源地址:
https://gitee.com/xiaolyuh/layering-cache總結
以上是生活随笔為你收集整理的layering-cache的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 蚂蚁金服大规模分布式事务实践和开源历程
- 下一篇: 缓存穿透、缓存击穿和缓存雪崩