Springboot(四十九)SpringBoot3整合jetcache缓存

上文中我们学习了springboot中缓存的基本使用。缓存分为本地caffeine缓存和远程redis缓存。现在有一个小小的问题,我想使用本地caffeine缓存和远程redis缓存组成二级缓存。还想保证他们的一致性,这个事情该怎么办呢?

Jetcache框架为我们解决了这个问题。

JetCache‌是一个由阿里巴巴开发的基于Java的缓存系统封装,旨在通过统一的API和注解简化缓存的使用。JetCache提供了比SpringCache更强大的功能,包括支持TTL(Time To Live,生存时间)、两级缓存、分布式自动刷新等特性。它支持多种缓存实现,如RedisCache、CaffeineCache(内存缓存)和LinkedHashMapCache(内存缓存),并且可以轻松添加新的缓存实现‌。

简单讲:jetcache不是缓存,他是保证缓存的一致性的框架。

JetCache支持的本地缓存类型包括LinkedHashMapCache和CaffeineCache。

‌JetCache支持的远程缓存类型包括redis、‌Tair等。

放一下官方文档:

jetcache/docs/CN/Readme.md at master · alibaba/jetcache · GitHub

官方文档中有部分配置是有bug的,都是坑。后边我们会说到。

下面我们在Springboot项目中集成jatcache。

一:添加pom依赖:

这里需要注意一下,jetcache支持不同的springboot-redis客户端。分别是:jedis和lettuce

Jedis和Lettuce的区别是什么呢?

Jedis 和 Lettuce 都是用于 Java 语言连接 Redis 的客户端,Jedis主要是同步方法,Lettuce主要是异步高性能,基于Netty。

具体请移步《【SpringBoot】Jedis和Lettuce的区别》

扯远了,回到主题:

如果你使用的是Lettuce客户端,那就引入:



    com.alicp.jetcache
    jetcache-starter-redis-lettuce
    2.7.5

如果你使用的是Jedis客户端,那就引入:



    com.alicp.jetcache
    jetcache-starter-redis 
    2.7.5

我这里使用的是lettuce

二:配置yml文件

这部分也是一样的,是根据你是用的redis客户端来选择的。这部分上边已经说过了,这里不再赘述,我这里是用的是lettuce。官方文档如下图所示:

Springboot(四十九)SpringBoot3整合jetcache缓存_第1张图片

这里得配置写法要参考一下官方文档中内容。

Application.yml内容如下:

jetcache:
  ## 统计间隔,0表示不统计,开启后定期在控制台输出缓存信息
  statIntervalMinutes: 15
  ## 是否把cacheName作为远程缓存key前缀
  areaInCacheName: false
  ## 本地缓存配置
  local:
    default: ## default表示全部生效,也可以指定某个cacheName
      ## 本地缓存类型,其他可选:caffeine/linkedhashmap
      type: caffeine
      keyConvertor: jackson
      #expireAfterWrite: 1800s # 缓存写入后10分钟过期
  # lettuce远程

你可能感兴趣的:(spring,boot,缓存,后端)