简介
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支持
阿里开源地址:https://github.com/alibaba/jetcache/wiki/Home_CN
遇到的问题
这里就详细说使用过程了,搭建过程就参考GitHubAPI,或者直接拉GitHub代码可以直接跑。
- 问题1:
com.alicp.jetcache.CacheConfigException: no remote cache builder: default remote是JetCache连接远程Redis 这个异常是连接你的远程Redis失败, 主要是配置问题。
官方给出的配置:
jetcache:
statIntervalMinutes: 1
areaInCacheName: false
local:
default:
type: linkedhashmap
keyConvertor: fastjson
remote:
default:
type: redis
keyConvertor: fastjson
valueEncoder: java
valueDecoder: java
poolConfig:
minIdle: 5
maxIdle: 20
maxTotal: 50
host: 127.0.0.1
port: 6379
password: ***
- 问题2
java.lang.ClassNotFoundException: redis.clients.jedis.util.Pool 这个类是jedis包下的,我引入jetcache版本2.5.11,jedis版本2.9.0。 jetcache与jedis是会有版本问题的,查看了文档介绍和Issues才发现的问题
最后换成:
<dependency>
<groupId>com.alicp.jetcache</groupId>
<artifactId>jetcache-starter-redis</artifactId>
<version>2.6.0</version>
</dependency>
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>3.3.0</version>
</dependency>
</dependencies>
我是把包都换成最新的了,然后没有报错Pool类找不到了。
结束语
百度上关于JetCache的报错、配置详解的资料挺少的,我个人的话回去jetcache的GitHub–issues去找一些问题。好啦! 这是本人的第一篇博客,也是正在学习的小白白,如有不足或者错误还请大家指正!!!