是由
在现在一般项目中或多或少的使用了一些缓存,如果本地缓存如SpringCache
,远程缓存如redis Cache
,如果您使用到了redis
缓存,那么jetcache是一个不错的选择,他支持本地缓存,本地二级缓存,Redis缓存等,同时是支持spring-boot-starter
方式做到开箱即用,
jetCache 介绍
JetCache
是一个基于Java的缓存系统封装,提供统一的API和注解来简化缓存的使用。 JetCache提供了比SpringCache更加强大的注解,可以原生的支持TTL、两级缓存、分布式自动刷新,还提供了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支持
如何使用jetcache
示例:采用spring-boot工程,jetcache github
- 引用jar
<dependency>
<groupId>com.alicp.jetcache</groupId>
<artifactId>jetcache-starter-redis-lettuce</artifactId>
<version>${jetCache.version}</version>
</dependency>
2.配置properties文件
示例不展示配置的properties,yml,直接请看jetCache-github
- spring boot Application 注解
@EnableCreateCacheAnnotation
该注解就是spring boot启动类,表明启动jetcache
- 通过
@CreateCache
来创建jetcache
@CreateCache(cacheType = CacheType.REMOTE, area = RedisConstants.REDIS_JETCACHE_AREA, name = RedisConstants.REDIS_JETCACHE_NAME_USER)
private Cache<Object, Object> cache;
这样我们就可以直接使用cache来进行操作
CacheManager 管理jetCache实例
/**
* <p>
* 获取当前{@link CacheManager}
* </p>
*
* @return {@link CacheManager}
*/
private static CacheManager getCacheManger() {
CacheManager cacheManager = CacheManager.defaultManager();
return cacheManager;
}
/**
* <p>
* 获取指定的cache
* </p>
*
* @param area 指定要使用的那个area的name
* @param cacheName 指定缓存的名称
* @return {@link Cache}
*/
private static Cache getCache(String area, String cacheName) {
Assert.notNull(area, "area is null");
Assert.notNull(cacheName, " cacheName is null");
CacheManager cacheManger = getCacheManger();
return cacheManger.getCache(area, cacheName);
}
注意这里的CacheManager
导入的是com.alicp.jetcache.anno.support
下的
这样我们就可以进行操作
注意