首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏快乐阿超

    Caffeine缓存

    Guava的Cache是Caffeine的原型库并且Caffeine提供了适配器以供简单的迁移策略。 官方文档、GitHub地址 官方网站:Caffeine Documentation GitHub仓库:ben-manes/caffeine 上述链接提供了 Caffeine 的详细使用指南、API 参考和最佳实践 对于 Maven 用户: <dependency> <groupId>com.github.ben-manes.caffeine</groupId> <artifactId>caffeine 示例:用户信息缓存 import com.github.benmanes.caffeine.cache.Cache; import com.github.benmanes.caffeine.cache.Caffeine 参考文档: Caffeine 官方文档:高级用法 使用 Caffeine 实现 Spring Cache 总结: Caffeine 提供了强大且灵活的缓存功能,是 Java 开发中不可或缺的性能优化工具

    52510编辑于 2024-09-04
  • 来自专栏开发三两事

    Caffeine实现本地缓存

    Caffeine缓存 Caffeine是一个基于Java8开发的,提供了近乎最佳命中率的高性能的本地缓存库。目前Spring内部的缓存使用的就是Caffeine。 GitHub地址:https://github.com/ben-manes/caffeine Caffeine的性能非常好,下图是官方给出的性能对比: pom.xml <dependency> <groupId>com.github.ben-manes.caffeine</groupId> <artifactId>caffeine</artifactId> <version>2.6.2 </version> </dependency> Caffeine Cache提供了三种缓存填充策略:手动、同步加载和异步加载 手动加载 /** * 手动加载 * @param key 基于大小回收 // 根据缓存的计数进行驱逐 LoadingCache<String, Object> cache = Caffeine.newBuilder() .maximumSize(10000

    1.8K20编辑于 2023-03-31
  • 来自专栏c++与qt学习

    缓存框架Caffeine探究

    缓存框架Caffeine探究 Java高性能本地缓存框架Caffeine 依赖 缓存加载 手动加载 CleanUp方法 自动加载 手动异步加载 自动异步加载 过期策略 基于大小 基于时间 基于引用 Caffeine.weakKeys () Caffeine.weakValues() Caffeine.softValues() 刷新机制 缓存移除 invalidate(Object key)方法 invalidateAll(Iterable 、GuavaCache、CaffeineCaffeine是一个基于Java8开发的提供了近乎最佳命中率的高性能的缓存库。 ; import com.github.benmanes.caffeine.cache.Caffeine; import com.github.benmanes.caffeine.cache.Weigher com.github.benmanes.caffeine.cache.Caffeine; import com.github.benmanes.caffeine.cache.Weigher; import

    2.5K50编辑于 2022-01-10
  • 来自专栏IT技术订阅

    Caffeine缓存的简单介绍

    Caffeine使用Window TinyLfu清理策略,它提供了接近最佳的命中率。 2、依赖 我们需要将Caffeine依赖添加到我们的pom.xml中: <dependency> <groupId>com.github.ben-manes.caffeine</groupId> Caffeine。 3、写入缓存 让我们关注Caffeine的三种缓存写入策略:手动、同步加载和异步加载。 我们使用Caffeine.weakKeys()、Caffeine.weakValues()和Caffeine.softValues()来启用每个选项: LoadingCache<String, DataObject

    1.6K10编辑于 2022-06-23
  • 来自专栏码农沉思录

    Caffeine Cache 进程缓存之王

    今天,我就来介绍一个比Guava Cache性能更高的缓存框架:Caffeine。 可以清楚的看到Caffeine效率明显的高于其他缓存。 填充策略(Population) Caffeine 为我们提供了三种填充策略:手动、同步和异步 手动加载(Manual) 1Cache<String, Object> manualCache = Caffeine.newBuilder 我们也可以使用权重的策略来进行驱逐,可以使用Caffeine.weigher(Weigher) 函数来指定权重,使用Caffeine.maximumWeight(long) 函数来指定缓存最大权重值。 的调整不只有算法上面的调整,内存方面的优化也有很大进步,Caffeine的API的操作功能和Guava是基本保持一致的,并且Caffeine为了兼容之前是Guava的用户,所以使用或者重写缓存到Caffeine

    4.3K30发布于 2019-07-13
  • 来自专栏java学习java

    聊聊本地缓存神器:Caffeine

    Caffeine基本介绍Caffeine 是基于 JAVA 8 的高性能本地缓存库。 Caffeine是在Guava Cache的基础上做一层封装,性能有明显提高,二者同属于内存级本地缓存。 使用Caffeine后无需使用Guava Cache,从并发的角度来讲,Caffeine明显优于Guava,原因是使用了Java 8最新的StampedLock锁技术。 清除策略 Caffeine提供了三种缓存驱逐策略:基于容量:设置缓存的数量上限// 创建缓存对象Cache<String, String> cache = Caffeine.newBuilder() ().build(); Caffeine.weakKeys() 使用弱引用存储key。

    4.2K161编辑于 2023-11-13
  • 来自专栏redis

    Redis+Caffeine 太强了!

    <groupId>com.github.ben-manes.caffeine</groupId> <artifactId>caffeine</artifactId> <version 本地内存的技术选型问题从易用性角度,Guava Cache、Caffeine和Encache都有十分成熟的接入方案,使用简单。 从功能性角度,Guava Cache和Caffeine功能类似,都是只支持堆内缓存,Encache相比功能更为丰富从性能上进行比较,Caffeine最优、GuavaCache次之,Encache最差(下图是三者的性能对比结果 )图片对于本地缓存的方案中,我比较推荐Caffeine,性能上遥遥领先。 真实的业务工程中,建议使用Caffeine作为本地缓存,另外使用redis或者memcache作为分布式缓存,构造多级缓存体系,保证性能和可靠性。

    33500编辑于 2025-06-30
  • 来自专栏java金融

    本地缓存性能之王Caffeine

    对比结论 可以从数据看出来Caffeine的性能都比Guava要好。 然后Caffeine的API的操作功能和Guava是基本保持一致的,并且 Caffeine为了兼容之前是Guava的用户,做了一个Guava的Adapter给大家使用也是十分的贴心。 如何使用 在 pom.xml 中添加 caffeine 依赖 1<! -- https://mvnrepository.com/artifact/com.github.ben-manes.caffeine/caffeine --> 2<dependency> 3 < groupId>com.github.ben-manes.caffeine</groupId> 4 <artifactId>caffeine</artifactId> 5 <version>

    1.6K20发布于 2020-08-04
  • 来自专栏java工会

    Caffeine Cache 进程缓存之王

    今天,我就来介绍一个比Guava Cache性能更高的缓存框架:Caffeine。 可以清楚的看到Caffeine效率明显的高于其他缓存。 填充策略(Population) Caffeine 为我们提供了三种填充策略:手动、同步和异步 手动加载(Manual) Cache<String, Object> manualCache = Caffeine.newBuilder 我们也可以使用权重的策略来进行驱逐,可以使用Caffeine.weigher(Weigher) 函数来指定权重,使用Caffeine.maximumWeight(long) 函数来指定缓存最大权重值。 的调整不只有算法上面的调整,内存方面的优化也有很大进步,Caffeine的API的操作功能和Guava是基本保持一致的,并且Caffeine为了兼容之前是Guava的用户,所以使用或者重写缓存到Caffeine

    1.8K20发布于 2019-11-14
  • Caffeine高性能java缓存框架

    Caffeine框架 Caffeine是一个高性能的Java缓存框架,它提供了简单易用的API,并且在性能方面比传统的缓存框架更高效。下面是Caffeine的具体使用和案例分析。 首先,需要在项目中引入Caffeine的依赖。 <artifactId>caffeine</artifactId> <version>2.9.0</version> </dependency> 接下来,你可以使用Caffeine来创建缓存实例 通过配置文件创建缓存: 首先,你需要创建一个caffeine配置文件(比如caffeine.properties),并在其中定义缓存的属性,例如: maximumSize=100 expireAfterWrite =10m 然后,你可以通过以下代码来加载配置文件并创建缓存: Cache<String, String> cache = Caffeine.from(Paths.get("path/to/caffeine.properties

    34210编辑于 2025-08-29
  • 来自专栏用户4352451的专栏

    浅入浅出Caffeine cache

    简介 Caffeine 是基于Java 8 开发的、提供了近乎最佳命中率的高性能本地缓存组件,Spring5 开始不再支持 Guava Cache,改为使用 Caffeine。 官方文档: https://maven-badges.herokuapp.com/maven-central/com.github.ben-manes.caffeine/caffeine Maven centry :https://maven-badges.herokuapp.com/maven-central/com.github.ben-manes.caffeine/caffeine Caffeine 原理 Caffeine 实战 配置参数 Caffeine 借鉴了Guava Cache 的设计思想,如果之前使用过 Guava Cache,那么Caffeine 很容易上手,只需要改变相应的类名就行。 总结 Caffeine cache是一个本地缓存。

    80120编辑于 2021-12-07
  • 来自专栏开发三两事

    Caffeine实现本地高性能缓存

    Caffeine是一种基于Java的本地缓存库,具有高性能和低延迟的特点。它是由Google开发的,旨在提供一种可靠和高效的本地缓存方案。在本篇博客中,我们将介绍如何使用Caffeine实现本地缓存。 Caffeine的特点Caffeine提供了许多优秀的特性,使其成为Java中最受欢迎的本地缓存库之一。 下面是一些Caffeine的主要特点:高性能:Caffeine使用了许多优化技术来提高缓存的性能,如手动内存管理、内存对齐、无锁算法等。 Caffeine的使用接下来我们将介绍如何使用Caffeine实现本地缓存。 首先,我们需要引入Caffeine库,例如:<dependency> <groupId>com.github.ben-manes.caffeine</groupId> <artifactId>caffeine

    2.7K50编辑于 2023-03-23
  • 来自专栏苏三说技术

    Guava Cache和Caffeine,哪个更好?

    Caffeine在设计之初就充分借鉴了Guava Cache的经验教训,同时引入了许多创新性的优化。 从技术演进的角度看,你可以将Caffeine看作是Guava Cache的“现代化重构版”。 3.2 Caffeine的优化锁和无锁结构 Caffeine利用了Java 8及更高版本的特性,采用了一系列优化策略: 1. 增加GC的复杂性 4.2 Caffeine的内存优化 Caffeine在内存使用上进行了更多优化: // Caffeine的内存优化示例 @Test public void testCaffeineMemoryOptimization 经过全面的对比分析,我们现在可以回答最初的问题:Guava Cache和Caffeine,哪个更好? 8.1 什么时候选择Caffeine? 毫不犹豫地选择Caffeine,如果你的项目: 1. 新项目一律使用Caffeine:从项目开始就建立正确的技术选型 2. 现有项目制定迁移计划:将Guava Cache迁移到Caffeine作为技术债务清理的一部分 3.

    10110编辑于 2026-02-28
  • 来自专栏Java随想录

    本地缓存无冕之王Caffeine Cache

    本篇文章将详述一个本地缓存框架:「Caffeine Cache」。Caffeine Cache以其高性能和可扩展性赢得「本地缓存之王」的称号,它是一个Java缓存库。 接下来,我们会详细介绍 Caffeine Cache 的特性和应用,并将这个高效的缓存工具无缝集成到你的项目中。淘汰算法在解析Caffeine Cache之前,我们首先要理解缓存淘汰算法。 集成Caffeine Cache在Caffeine Cache的介绍结束后,接下来介绍如何在项目中顺利集成Caffeine Cache。 在这篇文章中,我们深入探讨了Caffeine Cache以及其淘汰算法的内部工作原理。我们还详细介绍了如何在SpringBoot应用程序中集成Caffeine Cache。 希望读者通过本文能深入理解Caffeine Cache的优势并在实践中有效应用。总的来说,Caffeine Cache不仅提供了强大的缓存功能,还有一个高效的淘汰策略。

    1.1K30编辑于 2023-09-19
  • 来自专栏Java随想录

    本地缓存无冕之王Caffeine Cache

    本篇文章将详述一个本地缓存框架:「Caffeine Cache」。 Caffeine Cache以其高性能和可扩展性赢得「本地缓存之王」的称号,它是一个Java缓存库。 接下来,我们会详细介绍 Caffeine Cache 的特性和应用,并将这个高效的缓存工具无缝集成到你的项目中。 淘汰算法 在解析Caffeine Cache之前,我们首先要理解缓存淘汰算法。 SpringBoot集成Caffeine Cache 在Caffeine Cache的介绍结束后,接下来介绍如何在项目中顺利集成Caffeine Cache。 在这篇文章中,我们深入探讨了Caffeine Cache以及其淘汰算法的内部工作原理。我们还详细介绍了如何在SpringBoot应用程序中集成Caffeine Cache。 希望读者通过本文能深入理解Caffeine Cache的优势并在实践中有效应用。 总的来说,Caffeine Cache不仅提供了强大的缓存功能,还有一个高效的淘汰策略。

    2.9K31编辑于 2023-10-16
  • 来自专栏java金融

    SpringBoot如何快速使用Caffeine缓存?

    引言 前面我们有学习Caffeine 《本地缓存性能之王Caffeine》,并且也提到SpringBoot默认使用的本地缓存也是Caffeine啦,今天我们来看看Caffeine如何与SpringBoot 集成caffeine caffeine与SpringBoot集成有两种方式: 一种是我们直接引入 Caffeine 依赖,然后使用 Caffeine 方法实现缓存。 相当于使用原生api 引入 Caffeine 和 Spring Cache 依赖,使用 SpringCache 注解方法实现缓存。 </groupId> <artifactId>caffeine</artifactId> <version>2.6.0</version> </dependency> 第一种方式 首先配置一个 spring: profiles: active: dev cache: type: CAFFEINE caffeine: spec: maximumSize

    1.7K40发布于 2021-11-15
  • 来自专栏java金融

    本地缓存高性能之王Caffeine

    我们就来介绍一个比Guava Cache性能更高的缓存框架:Caffeine。 对比结论 可以从数据看出来Caffeine的性能都比Guava要好。 然后Caffeine的API的操作功能和Guava是基本保持一致的,并且 Caffeine为了兼容之前是Guava的用户,做了一个Guava的Adapter给大家使用也是十分的贴心。 如何使用 在 pom.xml 中添加 caffeine 依赖 <! -- https://mvnrepository.com/artifact/com.github.ben-manes.caffeine/caffeine --> <dependency>     <groupId

    2.6K1619发布于 2020-06-03
  • 来自专栏Java知识图谱

    Caffeine缓存 最快缓存 内存缓存

    2.004.jpeg 一、序言 Caffeine是一个进程内部缓存框架。 使用Caffeine后无需使用Guava Cache,从并发的角度来讲,Caffeine明显优于Guava,原因是使用了Java 8最新的StampedLock锁技术。 如果应用中仅使用Caffeine作为唯一的缓存框架,那么通过注解使用时无需显式指明。 (二)序列化 Caffeine缓存不涉及任何序列化,因此目标缓存对象不需要实现Serializable接口。 <dependency>    <groupId>com.github.ben-manes.caffeine</groupId>    <artifactId>caffeine</artifactId>

    3.7K30编辑于 2022-01-21
  • 来自专栏小工匠聊架构

    缓存 - Caffeine 不完全指北

    文章目录 官网 https://github.com/ben-manes/caffeine wiki: https://github.com/ben-manes/caffeine/wiki 概述 Caffeine 下面是一些Caffeine缓存框架的主要特点: 高性能:Caffeine的设计目标之一是提供卓越的性能。它通过使用高效的数据结构和优化的算法来实现快速的缓存访问。 扩展性:Caffeine 的设计允许开发人员通过自定义策略、缓存加载器和监听器等扩展框架的功能。 使用 Caffeine 缓存框架非常简单。 ; import com.github.benmanes.caffeine.cache.Caffeine; import com.github.benmanes.caffeine.cache.LoadingCache ; import com.github.benmanes.caffeine.cache.Caffeine; import com.github.benmanes.caffeine.cache.Scheduler

    2.2K20编辑于 2023-07-24
  • 来自专栏Lvshen的技术小屋

    开源的高性能本地缓存-Caffeine

    因此我推荐一个高性能本地缓存框架-Caffeine,Guava Cache的升级版,使用起来很方便。下面我们来看看它的使用示例。 性能 性能展示: Read(100%) Write(100%) 由上图我们看到:无论是读还是写,Caffeine的性能有多强。 使用示例 首先导入Maven依赖: <dependency> <groupId>com.github.ben-manes.caffeine</groupId> <artifactId>caffeine 官方文档 本篇文章只是对Caffeine做一个入门的介绍,想要深入了解的童鞋可以看看官方文档。 官方文档 Caffeine的官方使用文档如下: “(https://github.com/ben-manes/caffeine/wiki/Policy-zh-CN) ”

    1.2K10编辑于 2022-05-05
领券