guava cache 为啥删除元素时移动元素
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了guava cache 为啥删除元素时移动元素相关的知识,希望对你有一定的参考价值。
参考技术A在guava中数据的移除分为被动移除和主动移除两种
被动移除数据的方式,guava默认提供了三种方式:
基于大小的移除
看字面意思就知道就是按照缓存的大小来移除,如果即将到达指定的大小,那就会把不常用的键值对从cache中移除。
guava提供了两个基于时间移除的方法
expireAfterAccess(long, TimeUnit) 这个方法是根据某个键值对最后一次访问之后多少时间后移除
基于引用的移除
这种移除方式主要是基于java的垃圾回收机制,根据键或者值的引用关系决定移除,个人对垃圾回收这块不是非常了解,窃以为不太可靠。。也不常用。。所以没有研究,欢迎补充。
主动移除数据方式
主动移除有三种方法:
单独移除用 Cache.invalidate(key)
批量移除用 Cache.invalidateAll(keys)
移除所有用 Cache.invalidateAll()
以上是关于guava cache 为啥删除元素时移动元素的主要内容,如果未能解决你的问题,请参考以下文章
为啥 Python for 循环在遍历列表副本并进行删除时会跳过元素? [复制]