首页 > 其他分享 >guava cache使用记录

guava cache使用记录

时间:2022-11-19 18:36:04浏览次数:45  
标签:策略 记录 过期 cache key 刷新 guava

一、创建cache对象

创建cache对象一般有两种写法,一种返回cache对象,一种返回loadingCache对象

 

 

 loadingCache继承cache,也意味这cache的能力loadingcache都有,分别看一下两者的api:

cahce:https://guava.dev/releases/21.0/api/docs/com/google/common/cache/Cache.html

LoadingCache:https://guava.dev/releases/21.0/api/docs/com/google/common/cache/LoadingCache.html

建议使用loadingCache,两者api简单对比:

1、LoadingCache#get(K key) 和 Cache.get(K key, CacheLoader<? super K, V> loader)  最终调用同一个方法,两者的效果是一致的

但是Cache不能设置refreshAfterWrite,当数据过期时,会阻塞线程,具体可以参考后面   过期策略与刷新策略是如何配置使用的

二、参数配置,包括过期策略、 刷新策略、容量信息

容量配置根据实际场景来指定大小,建议指定初始容量,扩容操作是一个耗费资源的操作,guava根据设置的容量信息,当容量满时采用lru的淘汰策略就key淘汰,下面主要看一下过期策略和刷新策略

1、过期策略

expireAfterWrite:写后多长时间过期

expireAfterAccess:读后多长时间过期

guava cache并不是采用另启线程将key过期的策略,而是在使用过程中再将key过期

2、刷新策略

refreshAfterWrite:写后多久刷新一次    该方法只能loadingCache使用  Cache使用会抛异常

3、过期策略与刷新策略是如何配置使用的

 

 

下面再看一下刷新策略流程:

 

 

 

 

 

 

注意事项:缓存中不能存null, 若为null 

 

标签:策略,记录,过期,cache,key,刷新,guava
From: https://www.cnblogs.com/zhaolei1996/p/16906702.html

相关文章

  • [数学记录]arc137D Prefix Xors
    FWT/高维前缀和入门题。题意:给定一个数列\(a\),每次迭代把原数组替代为前缀异或和数组,求经过\(1-m\)次操作后\(a_n\)的值。\(n\leq10^6\)。首先,无论是手推找规律还......
  • [图论记录]arc124D Yet Another Sorting Problem
    题意:给定长度为\(n+m\)的排列\(p\),其中\(1-n\)位置为白色,\(n+1-n+m\)位置为黑色,每次交换一个白色位置与一个黑色位置的数,求把\(p\)变成升序的最少操作次数。link......
  • JavaWeb踩坑记录
    org.apache.ibatis.binding.BindingException:Parameter'XXXX'notfound.或Thereisnogetterforpropertynamed‘XXX‘in‘classXXX原因分析(首先这个问题......
  • 系统闪退,调试提示异常Exception_WasThrown记录
    WPF应用中,点击某个按钮时提示系统卡住,随后崩溃经过调试,系统提示Exception_WasThrown原因:某个属性get然后了它本身代码privateDateTimeendTime=DateTime.Today;......
  • 11.18日学习记录
    2022-11-1813:41:421.TOMCAT的配置tomcat的配置搞了一个上午,还让别人帮了忙,主要是因为tomcat位置放的不好。貌似放在桌面不行,改放在了D盘下,终于解决了之前tomcat启动成......
  • 对集群上 df 和 du 命令显示结果不一致的排查记录
    目录1对集群上df和du命令显示结果不一致的排查记录1.1背景1.2猜想1.2.1不会是把文件系统弄坏了吧!1.2.2有些人的小文件太多,把inode给用光了!1.2.3有一......
  • [??记录]agc002E Candy Piles
    agc的题好神啊。学校里想了个思路,回家开题解,才发现自己的思路离谱至极,浪费了这道题后面的思考。linktoatcoderlinktoLuogu题意:给定\(n\)堆石子,二人博弈,操作二选......
  • 【题解】做题记录(2022.11)
    11.1CF449DJzzhuandNumbers题目分析:考虑直接算的话就相当于限制每一位必须有一个\(0\),显然不如反着来,也就是某一位必须全为\(1\),也就是我们计算与之后不为\(0\)......
  • 单机10万TCP连接测试记录
    目录前言准备工作安装DotNet6环境服务端代码客户端代码编译测试记录失败尝试1(Linux可用端口范围限制)解决Linux端口范围限制查看端口范围修改端口范围失败尝试2(可用端口......
  • 面试记录 二
    自我介绍数组操作,什么操作会改变原数组箭头函数与普通函数的this指向问题怎么修改箭头函数的this指向v–model的原理及使用组件通信,嵌套很深的那种$nexttick原理时机说......