Jetcache+SpringBoot配置
Maven依赖
- jedis依赖
<dependency>
<groupId>com.alicp.jetcache</groupId>
<artifactId>jetcache-starter-redis</artifactId>
<version>2.6.0</version>
</dependency>
- lettuce依赖
<dependency>
<groupId>com.alicp.jetcache</groupId>
<artifactId>jetcache-starter-redis-lettuce</artifactId>
<version>2.6.0</version>
</dependency>
yaml配置
参考源码:
com.alicp.jetcache.autoconfigure.JetCacheProperties
com.alicp.jetcache.autoconfigure.AbstractCacheAutoInit
com.alicp.jetcache.autoconfigure.RedisAutoConfiguration.RedisAutoInit
- jedis配置
jetcache:
areaInCacheName: false
remote:
default:
type: redis
keyConvertor: fastjson
poolConfig:
minIdle: 10
maxIdle: 300
maxTotal: 300
password: 123456
database: 2
sentinels: localhost:8001,localhost:8002,localhost:8003
masterName: REDIS
- lettuce配置
jetcache:
areaInCacheName: false
remote:
default:
type: redis.lettuce
keyConvertor: fastjson
#valueEncoder: kryo
#valueDecoder: kryo
poolConfig:
minIdle: 10
maxIdle: 300
maxTotal: 300
password: 123456
database: 3
masterName: REDIS
uri: redis-sentinel://${jetcache.remote.default.password}@localhost:8001,localhost:8002,localhost:8003/?sentinelMasterId=${jetcache.remote.default.masterName}&database=${jetcache.remote.default.database}
启动注解
- @EnableCreateCacheAnnotation
- 开启可通过@CreateCache注解创建Cache实例功能
- @EnableMethodCache(basePackages = "com.xxx.xxx")
- 开启可通过@Cached注解创建Cache实例功能,初始化spring aop
/**
* 启动类
*/
@SpringBootApplication
@EnableCreateCacheAnnotation
@EnableMethodCache(basePackages = "com.xxx.xxx")
public class Application {
public static void main(String[] args){
SpringApplication.run(Application.class, args);
}
}
缓存注解
//缓存
@Cached(name = CENTER_DATA_CACHE_KEY, expire = 60 * 60 * 24 * 2, cacheNullValue = true)
public DmEffBillYear getData(BillDataReq req) {
reture null;
}
//刷新缓存
@CacheUpdate(name = CENTER_DATA_CACHE_KEY, value = "#result")
@Override
public DmEffBillYear freshData(BillDataReq req) {
return getData(req);
}