谷歌番石榴缓存,刷新过期超时



我有以下内容,它为所有新条目设置默认的过期超时。

Cache<String, Tracker> cache = CacheBuilder.newBuilder().
expireAfterAccess( expire , TimeUnit.MINUTES ).build();

填充过期访问后,如何刷新该访问?

当然,一种解决方案可能是移除项目并重新插入,但这可能比其他方式更昂贵。

您应该只使用cache.getIfPresent(key)访问要刷新的元素。根据Guava维基页面(强调矿):

expireAfterAccess(long, TimeUnit)仅在自上次读取或写入访问条目以来超过指定持续时间后使条目过期。请注意,逐出条目的顺序与基于大小的逐出类似。

所以它应该做你想要实现的事情。

最新更新