通过 Caffeine 和 Spring Cache 的集成,实现高性能的本地缓存

简介

Spring @Cacheable 注解

@Cacheable 是什么

@Cacheable 是 Spring Framework 提供的一个注解,用于方法级别的缓存管理。当一个被标注为 @Cacheable 的方法被调用时,它会先检查缓存中是否有对应的结果。如果有,则直接返回缓存结果,而不会执行方法逻辑。如果没有,则执行方法逻辑并将结果存入缓存,以便下次调用时直接使用缓存值。


作用

  1. 提升性能:避免重复调用耗时的计算或 I/O 操作(如数据库查询或远程调用)。
  2. 减少资源消耗:减少系统对外部依赖(如数据库、API)的访问频率。
  3. 简单易用:通过注解配置,无需显式管理缓存逻辑。

参数解析

@Cacheable(
    cacheNames = ..., // 缓存的名字(可理解为缓存的分类)
    key = ...,        // 缓存的键(默认使用方法参数作为键)
    unless = ...,     // 条件表达式,返回 true 时不会缓存
    condition = ...   // 条件表达式,返回 true 时才缓存
)
  • cacheNames: 指定缓存名称,用于区分不同的缓存空间。
  • key: 自定义缓存键的生成规则,支持 SpEL(Spring Expression Language)。
  • unless: 返回结果满足条件时,不存入缓存。
  • condition: 满足条件时,才会存入缓存。
  • sync: 如果为 true,则多个线程同时访问会先锁定,确保只执行一次计算。

Caffeine 本地缓存

Caffeine 是一个高性能、本地缓存库,提供类似于 Guava Cache 的功能,并且性能更优。想了解跟多可以自行百度,这里不做过多介绍哈(感谢支持)

Caffeine 和 Spring Cache 实现本地缓存

1. 添加 Maven 依赖

pom.xml 中添加以下依赖:

<dependencies>
    <!-- Spring Cache Starter -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-cache</artifactId>
    </dependency>
    <!-- Caffeine Cache -->
    <dependency>
        <groupId>com.github.ben-manes.caffeine</groupId>
        <artifactId>caffeine</
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值