我有以下内容,它为所有新条目设置默认过期超时。
Cache<String, Tracker> cache = CacheBuilder.newBuilder().
expireAfterAccess( expire , TimeUnit.MINUTES ).build();
如何在填充过期后刷新过期访问权限?
当然,一种解决方案可能是删除该项并重新插入,但这可能比其他方式已经可能的昂贵。
答案 0 :(得分:3)
您应该使用cache.getIfPresent(key)
访问要刷新的元素。根据{{3}}(强调我的):
Guava wiki page仅在指定的持续时间过去后才会使条目到期,因为该条目是上次由读取或写入访问的。请注意,条目被驱逐的顺序与基于大小的驱逐的顺序类似。
所以它应该完全符合你想要的目标。