SpringBoot 整合 Caffeine

天蓝Sea

关注

阅读 20

2023-10-19

1 Maven 依赖

引入pom依赖:

<dependency>
    <groupId>com.github.ben-manes.caffeine</groupId>
    <artifactId>caffeine</artifactId>
    <version>3.1.6</version>
</dependency>

或者直接观察当前 SpringBoot 自带版本:

image-20231019154732645

2.2 基本用法

import com.github.benmanes.caffeine.cache.Caffeine;

public class CaffeineExample {

    public static void main(String[] args) {
        // 创建一个缓存实例
        Caffeine<String, String> caffeineCache = Caffeine.newBuilder().build();

        // 向缓存中放入数据
        caffeineCache.put("公众号", "JavaEdge");

        // 从缓存中获取数据
        String value = caffeineCache.getIfPresent("公众号");
        System.out.println("Value for 公众号: " + value);
    }
}

3 高级用法

3.1 自定义缓存策略

通过expireAfterWriteexpireAfterAccess等方法自定义缓存项的过期策略。

Caffeine<String, String> caffeineCache = Caffeine.newBuilder()
        .expireAfterWrite(10, TimeUnit.MINUTES)
        .build();

3.2 异步加载

Caffeine<String, CompletableFuture<String>> caffeineCache = Caffeine.newBuilder()
        .buildAsync(key -> CompletableFuture.supplyAsync(() -> loadDataFromDatabase(key)));

4 性能调优

根据实际需求进行配置,例如缓存的最大大小、刷新策略。

Caffeine<String, String> caffeineCache = Caffeine.newBuilder()
        .maximumSize(1000)
        .recordStats() // 启用统计信息
        .build();

5 总结

参考

  • 官方文档
  • https://github.com/ben-manes/caffeine/wiki/Roadmap-zh-CN
  • https://github.com/ben-manes/caffeine

精彩评论(0)

0 0 举报