记录使用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支持

阿里开源地址: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去找一些问题。好啦! 这是本人的第一篇博客,也是正在学习的小白白,如有不足或者错误还请大家指正!!!

猜你喜欢

转载自blog.csdn.net/qq_45163910/article/details/107716058