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 循环在遍历列表副本并进行删除时会跳过元素? [复制]

为啥删除元素比添加元素需要更多时间?

Guava cache使用总结

java为啥删除数组元素时只能删第一行,其它都显示找不到,但是打印的话全部都可以出来

Guava Cache详解

当我尝试从双向链表中删除最后一个元素时,为啥会收到“信号 SIGSEGV,分段错误”?