【性能飙升】Caffeine缓存框架:SpringBoot的高性能秘籍!

高性能 Java 本地缓存 Caffeine 框架介绍及在 SpringBoot 中的使用代码加详解

1. 引包
import com.github.benmanes.caffeine.cache.Cache;
import com.github.benmanes.caffeine.cache.Caffeine;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.concurrent.TimeUnit;
解释:
  • com.github.benmanes.caffeine.cache.Cache: Caffeine 缓存接口。
  • com.github.benmanes.caffeine.cache.Caffeine: Caffeine 缓存构建器。
  • org.springframework.beans.factory.annotation.Autowired: Spring 自动注入注解。
  • org.springframework.stereotype.Service: Spring 服务层注解。
  • java.util.concurrent.TimeUnit: 时间单位枚举类。
2. 创建缓存配置类
@Service
public class CacheConfig {
    // 定义一个名为 "exampleCache" 的缓存实例
    private final Cache exampleCache;

    // 构造函数中初始化缓存
    public CacheConfig() {
        this.exampleCache = Caffeine.newBuilder()
                // 设置缓存最大容量为 100 条记录
                .maximumSize(100)
                // 设置缓存过期时间为 5 分钟
                .expireAfterWrite(5, TimeUnit.MINUTES)
                // 设置缓存刷新策略,当缓存项被访问时,重新计算其过期时间
                .refreshAfterWrite(1, TimeUnit.MINUTES)
                // 构建缓存实例
                .build();
    }

    // 获取缓存实例的方法
    public Cache getExampleCache() {
        return exampleCache;
    }
}
解释:
  • @Service: 将该类标记为 Spring 的服务组件。
  • exampleCache: 定义一个名为 "exampleCache" 的缓存实例。
  • Caffeine.newBuilder(): 创建一个 Caffeine 缓存构建器。
  • maximumSize(100): 设置缓存的最大容量为 100 条记录。
  • expireAfterWrite(5, TimeUnit.MINUTES): 设置缓存项在写入后 5 分钟内过期。
  • refreshAfterWrite(1, TimeUnit.MINUTES): 设置缓存项在写入后 1 分钟内被访问时刷新其过期时间。
  • build(): 构建缓存实例。
  • getExampleCache(): 提供一个方法来获取缓存实例。
3. 使用缓存服务类
@Service
public class ExampleService {
    // 自动注入缓存配置类
    @Autowired
    private CacheConfig cacheConfig;

    // 从缓存中获取数据的方法
    public String getDataFromCache(String key) {
        // 尝试从缓存中获取数据
        return cacheConfig.getExampleCache().getIfPresent(key);
    }

    // 向缓存中添加数据的方法
    public void addDataToCache(String key, String value) {
        // 将数据放入缓存中
        cacheConfig.getExampleCache().put(key, value);
    }
}
解释:
  • @Service: 将该类标记为 Spring 的服务组件。
  • @Autowired: 自动注入 CacheConfig 类的实例。
  • getDataFromCache(String key): 从缓存中获取数据的方法。如果缓存中存在该键对应的值,则返回该值;否则返回 null。
  • addDataToCache(String key, String value): 向缓存中添加数据的方法。将指定的键值对放入缓存中。
4. 整体解释

这个示例展示了如何在 Spring Boot 项目中使用 Caffeine 作为本地缓存框架。首先,我们通过 CacheConfig 类配置了一个 Caffeine 缓存实例,设置了最大容量、过期时间和刷新策略。然后,我们在 ExampleService 类中使用该缓存实例,提供了从缓存中获取数据和向缓存中添加数据的方法。通过这种方式,我们可以有效地提高应用程序的性能,减少对数据库或其他外部资源的频繁访问。

java八股文电籽版整理好啦,需要的可以思博主!!

你可能感兴趣的:(程序员,Java,IT,缓存,spring,boot,spring,windows,开发语言,java,list)