springboot caffine缓存的简介及demo是怎样的
发表于:2025-02-09 作者:千家信息网编辑
千家信息网最后更新 2025年02月09日,这篇文章将为大家详细讲解有关springboot caffine缓存的简介及demo是怎样的,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。Caffei
千家信息网最后更新 2025年02月09日springboot caffine缓存的简介及demo是怎样的
这篇文章将为大家详细讲解有关springboot caffine缓存的简介及demo是怎样的,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。
Caffeine是使用Java8对Guava缓存的重写版本,在Spring 5.0或者Spring Boot 2.0中将取代,基于LRU算法实现,支持多种缓存过期策略。那么为什么这么好的东西需要被淘汰呢,如果对于本地Cache有过深入研究的人应该知道LRU算法基本可以满足大部分的场景,但是很多人为了精益求精,基于LRU的算法,又在此基础上提出了一系列更好的,更有效果的淘汰策略。比如有ARC,LIRS和W-TinyLFU等都提供了接近最理想的命中率,他们这些算法进一步提高了本地缓存的效率。Caffeine配置说明:initialCapacity=[integer]: 初始的缓存空间大小maximumSize=[long]: 缓存的最大条数maximumWeight=[long]: 缓存的最大权重expireAfterAccess=[duration]: 最后一次写入或访问后经过固定时间过期expireAfterWrite=[duration]: 最后一次写入后经过固定时间过期refreshAfterWrite=[duration]: 创建缓存或者最近一次更新缓存后经过固定的时间间隔,刷新缓存weakKeys: 打开key的弱引用weakValues:打开value的弱引用softValues:打开value的软引用recordStats:开发统计功能注意:expireAfterWrite和expireAfterAccess同时存在时,以expireAfterWrite为准。maximumSize和maximumWeight不可以同时使用weakValues和softValues不可以同时使用
springbootApplication开启缓存支持:@EnableCaching// 开启缓存,需要显示的指定maven 引入:
org.springframework.boot spring-boot-starter-cache com.github.ben-manes.caffeine caffeine
demo:
import com.github.benmanes.caffeine.cache.Caffeine;import org.springframework.cache.caffeine.CaffeineCacheManager;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import java.util.ArrayList;import java.util.List;import java.util.concurrent.TimeUnit;@Configurationpublic class CacheConfig { private static final int DEFAULT_MAXSIZE = 10; private static final int DEFAULT_TTL = 15 * 60; /** * 个性化配置缓存 */ @Bean(name = "caffeineCache") public CaffeineCacheManager cacheManager() { CaffeineCacheManager cacheManager = new CaffeineCacheManager(); Caffeine caffeine = Caffeine.newBuilder() //cache的初始容量值 .initialCapacity(10) .expireAfterWrite(DEFAULT_TTL,TimeUnit.SECONDS) //maximumSize用来控制cache的最大缓存数量,maximumSize和maximumWeight不可以同时使用, .maximumSize(DEFAULT_MAXSIZE); cacheManager.setCaffeine(caffeine); cacheManager.setCacheNames(getNames()); return cacheManager; } private static ListgetNames(){ List names = new ArrayList<>(2); names.add("datainterface"); return names; }}
关于springboot caffine缓存的简介及demo是怎样的就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
缓存
同时
算法
最大
时间
简介
内容
文章
更多
知识
策略
篇文章
支持
配置
不错
精益求精
东西
个性
中将
功能
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
软件开发合作合同范本
点餐系统数据库统计
非法网络安全审查
期权软件开发
c适合桌面软件开发吗
工作站与服务器
500万访问量服务器
个人数据库和地理数据库
计算机网络技术项目计划书
sql数据库定义的实验总结
电力监控系统网络安全感知
北交所软件开发
眼前一亮的数据库课设
三维cad软件开发
网络营销改善数据库
移动研究院软件开发待遇
长沙网络安全培训
嘉盛手机mt4无法找到服务器
深圳教育软件开发哪家好
数据库表中的备注怎么写
软件开发各阶段产生的文档
服务器怎么用管理口看型号
数据库表中表的创建
软件开发的毛利率一般是多少
青浦区网络营销软件开发供应商
arm阵列服务器 创业公司
网络技术带字图片
辽宁省网络安全开幕式
以人工智能重塑网络安全
php关闭数据库的函数