Guava缓存的过期

Guava缓存提供多种回收策略,如基于容量的LRU算法、定时回收及引用回收。LRU算法在热点数据场景下效率高,但易受批量操作影响。弱引用和软引用用于缓存回收,能响应内存需求。还可手动清除特定或全部缓存项。
摘要由CSDN通过智能技术生成

Guava缓存是谷歌的一种本地缓存,缓存是通过使用本机的内存来存储的,实现原理类似于ConcurrentHashMap,

Guava适用于以下的场景:

1.消耗内存空间来提升速度

2.你预料到某些键会被查询一次以上

3.缓存中存放的数据总量不会超出内存的容量

缓存回收

1.基于容量的回收

CacheBuilder.maximumSize(long)

这种回收方案使用的策略是LRU算法。

LRU算法(Least recently used,最近最少使用)根据数据的历史访问记录来进行淘汰数据,其核心思想是如果数据最近被访问过,那么将来被访问的几率也会很高。

算法的实现是采用的链表的实现,新数据插入到链表的头部,每当缓存命中(即缓存数据被访问),则将找到的该数据移到链表的头部。

当链表满的时候,将链表尾部的数据丢弃。

命中率

当存在热点数据时,LRU的效率很好,但是偶发性的、周期性的批量操作会导致LRU命中率急剧下降,缓存污染情况比较严重。
时间复杂度为O(n)

优缺点

命中时需要遍历链表,找到命中的数据然后移到链表的头部,和链表的特性一样,查找需要遍历整个链表,插入新数据比较快。

2.定时回

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值