资源准备:
1)可以进行缓存读写的redis服务
2)可以服务调用的springboot正常项目
代码集成:
1、依赖引入
<!--jetcache缓存技术的引入-->
<dependency>
<groupId>com.alicp.jetcache</groupId>
<artifactId>jetcache-starter-redis</artifactId>
<version>2.5.11</version>
</dependency>
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>2.9.1</version>
</dependency>
<!--redis 依赖common-pool2 -->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-pool2</artifactId>
<version>2.4.3</version>
</dependency>
推荐这个配置,如果只引入第一个,测试发现无法调用redis使用@cached等方式不起作用
2、配置文件里进行redis设置
jetcache:
statIntervalMinutes: 15
areaInCacheName: false
hidePackages: com.sasa.demo
local:
# 默认2小时本地缓存
default:
type: caffeine
keyConvertor: fastjson
expireAfterWriteInMillis: 3600000
expireAfterAccessInMillis: 1800000
remote:
# 默认2小时的远程缓存
default:
type: redis
expireAfterWriteInMillis: 43200000
keyConvertor: fastjson
valueEncoder: kryo
valueDecoder: kryo
poolConfig:
minIdle: 5
maxIdle: 20
maxTotal: 50
host: ${REDIS_HOST:redis的ip}
port: ${REDIS_PORT:16379}
3、启动类注解
@EnableMethodCache(basePackages = "com.sasa.demo")//项目主路径 @EnableCreateCacheAnnotation
4、方法注解使用
@Service
public class CacheTestServiceImp implements CacheTestService {
@Override
@Cached(name="ls:dlc:int",key="#id",cacheType=CacheType.REMOTE)
public String cacheReadAndWriter(String id) {
return getData(id);
}
public String getData(String id){
System.out.print(id);
User u=new User();
u.setId(id);
u.setName("dhj");
return u.getName();
}
}
还有其他注解方式,就不多罗列几个了
版权声明:本文为dhj393338原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。