如何使用谷歌番石榴自动刷新缓存?
我正在使用谷歌番石榴库进行缓存。对于自动缓存刷新,我们可以执行以下操作:
cache = CacheBuilder.newBuilder()
.refreshAfterWrite(15, TimeUnit.MINUTES)
.maximumSize(100)
.build(....);
但是,当对条目的第一个过时请求发生时,将执行自动刷新。
有没有办法自动刷新它,即使没有请求缓存数据?就像每15分钟一样,缓存数据应该从Db中提取并加载它,无论是否有人调用缓存数据。
此外,Guava的缓存到期时间是整个缓存。是否可以根据键使缓存值过期?例如,缓存密钥为“NOT_SO_FREQ_CHANGE_DATA”的数据每 1 小时过期一次,而密钥为“FREQ_CHANGING_DATA”的数据应每 15 分钟过期一次?