1.POM 文件加入依赖
<dependency>w <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> </dependency> <!-- https://mvnrepository.com/artifact/com.alicp.jetcache/jetcache-starter-redis --> <dependency> <groupId>com.alicp.jetcache</groupId> <artifactId>jetcache-starter-redis</artifactId> <version>2.6.7</version> </dependency> <!-- 加入依赖 Redis end -->
2.YML文件配置redis配置
jetcache:
statIntervalMinutes: 15 # 统计间隔,默认0:表示不统计
areaInCacheName: false # areaName是否作为缓存key前缀,默认True
local:
default: # 默认default,可以配置更多的area
type: linkedhashmap # 已支持可选:linkedhashmap、caffeine
keyConvertor: fastjson # key转换器
remote:
default:
type: redis
keyConvertor: fastjson
valueEncoder: java # 序列化器,只有remote需要
valueDecoder: java # 序列化器,只有remote需要
poolConfig:
minIdle: 8
maxIdle: 20
maxTotal: 50
host: 127.0.0.0
port: 6379
password: xxxx
database: 6
timeout: 100000
3.启动类增加启动缓存注解
//启动缓存 指定启动缓存包路径
@EnableMethodCache(basePackages = "com.xx.xxx")
@EnableCreateCacheAnnotation
public class XxxxApplication {
public static void main(String[] args) {
ConfigurableApplicationContext configurableApplicationContext = SpringApplication.run(XxxxApplication.class, args);
}
4.创建controller 和Service
再对应 Service方法上加缓存直接
xxx.metheod.key 方法缓存唯一key
cacheType 缓存类型 一般选择 REMOTE
expire 缓存失效时间
refresh 接口首次调用后间隔刷新时间
stopRefreshAfterLastAccess 接口停止访问后,间隔停止刷新时间
@Cached(name="xxx.me", key="#userId", expire = 600, cacheType = CacheType.REMOTE)
@CacheRefresh(refresh = 60, stopRefreshAfterLastAccess = 120, timeUnit = TimeUnit.SECONDS)
@CachePenetrationProtect
public Map<String, List<BaseCode>> redisMethodCache(String userId){
Map<String, List<BaseCode>> cMap = new HashMap<>();
log.info(" redisMethodCache ====> 开始查询DDB... ");
List<BaseCode> baseCodeList = baseCodeMapper.selectAll().subList(1,10);
return baseCodeList ;
}
版权声明:本文为m0_46761324原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。