一、介绍
JetCache是一个基于Java的缓存系统封装,提供统一的API和注解来简化缓存的使用。 JetCache提供了比SpringCache更加强大的注解,可以原生的支持TTL(Time To Live,即缓存生存时间)、两级缓存、分布式自动刷新,还提供了Cache接口用于手工缓存操作。 当前有四个实现,RedisCache、TairCache(此部分未在github开源)、CaffeineCache(in memory)和一个简易的LinkedHashMapCache(in memory),要添加新的实现也是非常简单的。
全部特性:
- 通过统一的API访问Cache系统
- 通过注解实现声明式的方法缓存,支持TTL和两级缓存
- 通过注解创建并配置Cache实例
- 针对所有Cache实例和方法缓存的自动统计
- Key的生成策略和Value的序列化策略是可以配置的
- 分布式缓存自动刷新,分布式锁 (2.2+)
- 异步Cache API (2.2+,使用Redis的lettuce客户端时)
- Spring Boot支持
二、使用
1、添加依赖
<dependency>
<groupId>com.alicp.jetcache</groupId>
<artifactId>jetcache-starter-redis</artifactId>
<version>2.6.4</version>
<exclusions>
<exclusion>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
</exclusion>
</exclusions>
</dependency>
2、yml配置
jetcache:
# 统计间隔,0表示不统计
statIntervalMinutes: 15
# 即key里加不加area的名字,true时key形如default_myname::key
areaInCacheName: false
remote:
default:
type: redis
keyConvertor: fastjson
host: ${redis.host}
port: ${redis.port}
password: ${redis.password}
poolConfig:
minIdle: 5
maxIdle: 20
maxTotal: 50
关于配置的含义:
3、使用@CreateCache注解声明一个缓存对象
@EnableCreateCacheAnnotation启动用注解来创建缓存,开启后就可以用@CreateCache来创建一个缓存对象。
@SpringBootApplication
@EnableCreateCacheAnnotation
public class CacheApplication {
public static void main(String[] args) {
SpringApplication.run(CacheApplication.class, args);
}
}
使用@CreateCache注解声明一个缓存对象
@Component
public class JetCacheManager {
@CreateCache(area = "default", name = "XXX::", expire = 30, timeUnit = TimeUnit.SECONDS, cacheType = CacheType.REMOTE)
private Cache<String, List<Map<String, Object>>> jetResultCache;
public void putCache(String key, List<Map<String, Object>> value) {
jetResultCache.putIfAbsent(key, value);
}
public List<Map<String, Object>> getCache(String key) {
return jetResultCache.get(key);
}
}
参考
官网:https://github.com/alibaba/jetcache/tree/master/docs/CN