栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java Caffeine 缓存框架的应用

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java Caffeine 缓存框架的应用

Caffeine 是基于Java 8的高性能,接近最佳的缓存库

1、引入依赖

     com.github.ben-manes.caffeine
     caffeine
     2.8.2
 
2、定义
private final Cache> bonusDetailRuleCache = Caffeine
            .newBuilder()
            //最大容量
            .maximumSize(100)
            //最后一次使用过后算起的过期时间
            .expireAfterWrite(Duration.ofMinutes(10))
            .build();

Caffeine提供了基于大小的驱除策略:
使用Caffeine.maximumSize(long)方法来指定缓存的最大容量。当缓存超出这个容量的时候,会使用Window TinyLfu策略来删除缓存。我们也可以使用权重的策略来进行驱逐,可以使用Caffeine.weigher(Weigher) 函数来指定权重,使用Caffeine.maximumWeight(long) 函数来指定缓存最大权重值。

Caffeine提供了三种定时驱逐策略:
expireAfterAccess(long, TimeUnit):在最后一次访问或者写入后开始计时,在指定的时间后过期。假如一直有请求访问该key,那么这个缓存将一直不会过期。
expireAfterWrite(long, TimeUnit): 在最后一次写入缓存后开始计时,在指定的时间后过期。
expireAfter(Expiry): 自定义策略,过期时间由Expiry实现独自计算。

还有其他的一些,刷新,写入,监听等功能就不再赘述啦~各位看官自查

3、使用

一般使用

List list = bonusDetailRuleCache.get("", key -> Service.select());
 

这样就可以从缓存中查找数据,如果,缓存没有这个key(“”)相关的数据或者过期,就会重新通过service查一遍

可以利用缓存来,存储一些不经常变动和一些热点数据

暑期编程PK赛 得CSDN机械键盘等精美礼品!
转载请注明:文章转载自 www.mshxw.com
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号