前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >关于Guava Cache 需要注意的几点

关于Guava Cache 需要注意的几点

作者头像
WindWant
发布2020-09-11 15:36:20
1.1K0
发布2020-09-11 15:36:20
举报
文章被收录于专栏:后端码事后端码事

一、元素过期策略

expireAfterWrite(long duration, TimeUnit unit):在元素【写入】或者【值更新】后的一段时间之后,自动移除元素。

  • 当duration=0时,意味着缓存写入的元素会立刻过期;
  • 过期周期是针对【整个cache所有的元素】,无法针对每一个元素设置过期时间。
  • 过期周期不可为负数,否则会抛IllegalArgumentException异常
  • 过期周期会转化为nano,TimeUnit.NANOSECONDS.convert(duration, TimeUnit.NANOSECONDS)}.

expireAfterAccess(long duration, TimeUnit unit):在元素【写入】或者【值更新】或者【最近一次访问】后的一段时间之后,自动移除元素。

  • 最近访问时间会因缓存中【任何元素】的访问操作而重置。
  • Cache.asMap() 为缓存的集合视图,asMap()不会重置元素的最近访问时间,但是Cache.asMap().get(Object) 和 code Cache.asMap().put(K, V)操作则会重置。
  • 其它同expireAfterWrite

二、缓存状态

recordStats():累计记录缓存操作状态,此设置会对性能有影响。

stats():输出缓存状态数据。

三、CacheLoader

LoadingCache.get(key) 操作获取不到元素时,执行load加载元素,load结果为null时,不会执行更新。

创建方式:

new CacheLoader<Key, Value>() {

public Value load(Key key) {

return selfDefLoadFunction(key); } })

LoadingCache build时传入或者Cache.get(key, CacheLoader)传入。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-03-27 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、元素过期策略
  • 二、缓存状态
  • 三、CacheLoader
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档