Caffeine for Java:完整指南及示例

面向初学者的在线Python训练器

轻松学习Python,无需理论负担。在浏览器中直接解决带自动检查的实践任务,无需安装任何东西。

开始课程
\n

Caffeine for Java:高性能内存缓存

\n\n
\n

它是什么以及为什么需要它?

\n

Caffeine 是一个用 Java 编写的高性能内存缓存库。它由 Ben Manes 创建,是 JVM 最快的缓存实现之一。Caffeine 的设计考虑了现代多线程需求,并提供了丰富的 API 来管理缓存中对象的生命周期。

\n

为什么需要 Caffeine?在任何处理数据的应用程序中,经常会出现重复请求相同数据的情况。与其每次都执行昂贵的操作(如数据库查询、外部 API 调用、复杂计算),不如将结果保存在缓存中。Caffeine 使用 W-TinyLFU(窗口最小最不经常使用)算法,以最高效的方式实现这一点,该算法确保了高精度的元素淘汰和最小的开销。

\n

该库被广泛应用于 Spring Framework(从 5.0 版本开始)等大型项目中,作为标准的缓存实现。Caffeine 支持异步加载、自动更新条目、统计信息以及多种淘汰策略(基于时间、大小、引用)。

\n
\n\n
\n

安装

\n

Caffeine 通过 Maven Central 分发。要使用它,请将依赖项添加到您的 pom.xml(Maven)或 build.gradle(Gradle)中。

\n \n

Maven

\n
<dependency>\n    <groupId>com.github.ben-manes.caffeine</groupId>\n    <artifactId>caffeine</artifactId>\n    <version>3.1.8</version>\n</dependency>
\n\n

Gradle

\n
implementation 'com.github.ben-manes.caffeine:caffeine:3.1.8'
\n\n

要获取最新版本,请查看 Maven Central。

\n
\n\n
\n

快速入门

\n

创建和使用 Caffeine 缓存的最小示例:

\n
import com.github.benmanes.caffeine.cache.Cache;\nimport com.github.benmanes.caffeine.cache.Caffeine;\n\nimport java.util.concurrent.TimeUnit;\n\npublic class QuickStart {\n    public static void main(String[] args) {\n        // 1. 创建一个最大容量为 100 个元素的缓存\n        //    并且条目在最后一次访问后 10 分钟过期\n        Cache<String, String> cache = Caffeine.newBuilder()\n                .maximumSize(100)\n                .expireAfterAccess(10, TimeUnit.MINUTES)\n                .build();\n\n        // 2. 放入一个值\n        cache.put("key1", "Hello, Caffeine!");\n\n        // 3. 获取一个值\n        String value = cache.getIfPresent("key1");\n        System.out.println(value); // 输出:Hello, Caffeine!\n\n        // 4. 使用加载函数获取值(如果键不存在)\n        String loadedValue = cache.get("key2", k -> "Loaded: " + k);\n        System.out.println(loadedValue); // 输出:Loaded: key2\n    }\n}
\n
\n\n
\n

主要方法和类

\n

让我们看看 Caffeine 的关键类和主要方法。用于配置的主要类是 Caffeine,而用于操作缓存的类是 Cache、LoadingCache 和 AsyncCache。

\n\n
\n

1. Caffeine.newBuilder()

\n

签名: public static Caffeine<K, V> newBuilder()

\n

功能: 创建一

推荐