LFU(Least Frequently Used)最近最少使用算法。
它是基于“如果一个数据在最近一段时间内使用次数很少,那么在将来一段时间内被使用的可能性也很小”的思路。
注意 LFU 和 LRU 算法的不同之处,LRU 的淘汰规则是基于访问时间,而 LFU 是基于访问次数的。
那么 LFU Cache 应该支持的操作为:
get(key)
:如果 Cache 中存在该 key,则返回对应的 value 值,否则,返回-1;set(key,value)
:如果 Cache 中存在该 key,则重置 value 值;如果不存在该 key,则将该 key 插入到到Cache 中,若 Cache 已满,则淘汰最少访问的数据。