layering-cache
生活随笔
收集整理的這篇文章主要介紹了
layering-cache
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
layering-cache
layering-cache是一個(gè)支持分布式環(huán)境的多級(jí)緩存框架,使用方式和spring-cache類似,主要目的是在使用注解的時(shí)候支持配置過(guò)期時(shí)間。
layering-cache其實(shí)是一個(gè)兩級(jí)緩存,一級(jí)緩存使用Caffeine作為本地緩存,二級(jí)緩存使用redis作為集中式緩存。并且基于redis的Pub/Sub做緩存的刪除,所以它是一個(gè)適用于分布式環(huán)境下的一個(gè)緩存系統(tǒng)。
支持
- 支持緩存監(jiān)控統(tǒng)計(jì)
- 支持緩存過(guò)期時(shí)間在注解上直接配置
- 支持二級(jí)緩存的自動(dòng)刷新(當(dāng)緩存命中并發(fā)現(xiàn)緩存將要過(guò)期時(shí)會(huì)開(kāi)啟一個(gè)異步線程刷新緩存)
- 刷新緩存分為強(qiáng)刷新和軟刷新,強(qiáng)刷新直接調(diào)用緩存方法,軟刷新直接改緩存的時(shí)間
- 緩存Key支持SpEL表達(dá)式
- 新增FastJsonRedisSerializer,KryoRedisSerializer序列化,重寫String序列化。
- 支持同一個(gè)緩存名稱設(shè)置不同的過(guò)期時(shí)間
- 輸出INFO級(jí)別的監(jiān)控統(tǒng)計(jì)日志
- 二級(jí)緩存是否允許緩存NULL值支持配置
- 二級(jí)緩存空值允許配置時(shí)間倍率
快速開(kāi)始
集成 Spring 4.x
- maven 方式
- gradle 方式
聲明RedisTemplate
如果項(xiàng)目中沒(méi)有聲明RedisTemplate Bean 可以參考下面鏈接 聲明RedisTemplate
聲明CacheManager和LayeringAspect
/*** 多級(jí)緩存配置** @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注解
更多使用方法可以查看官方文檔
開(kāi)源地址:
https://gitee.com/xiaolyuh/layering-cache總結(jié)
以上是生活随笔為你收集整理的layering-cache的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 蚂蚁金服大规模分布式事务实践和开源历程
- 下一篇: 缓存穿透、缓存击穿和缓存雪崩