Redisson动态增量数据的存储,LRU与LFU的比较

本文介绍了Redisson中的LRU(最近最少使用)和LFU(最不经常使用)缓存策略。LRUCacheMap使用ArrayList和LinkedHashSet实现,当达到最大容量时,通过轮询移除头部元素。LRUCacheMap的构造函数允许设置大小、存活时间和最大空闲时间。StdCachedValue负责判断过期逻辑。文章还列举了常用方法,如put、get、remove等。
摘要由CSDN通过智能技术生成

Redisson动态增量数据的存储,LRU与LFU的比较

LRU与LFU什么意思

这两个缩略词的意思,网络上搜搜一下,应该都能找到相关的解释。这里做一下简要的说明,

  • LRU(least frequently used): 最近最少使用
  • LFU(Least Recently Used): 最不经常使用

Redisson对应Class说明

当前使用的文档为3.11.2版本的javadoc。
对应的两个Map为org.redisson.cache包下的,

  • LFUCacheMap
  • LRUCacheMap
    以上类均继承或扩展org.redisson.cache.AbstractCacheMap<K,V>类。

LRUCacheMap

LRU(least recently used) cache,即最近最少使用cache。使用ArrayList存储不断增长的CachedValue,列表的大小固定为当前CPU核数的2倍;每个列表元素是一个LinkedHashSet,其值为CachedValue.。保存key-value值到LRUCacheMap时,根据CachedValue的hashCode对列表取模运算,返回该值要添加到的LinkedHashSet所在的列表中的索引,从而找到要保存到的LinkedHashSet集合。
每次读取key-value值时,都会把该值从相应的LinkedHashSet中取出,然后重新放回尾部。
当m

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值