使用Guava自动刷新缓存

汤玛士


感谢这个论坛(如何使用Google Guava自动刷新缓存?),我了解了Guava。
我想问一些有关上述主题的信息(如何使用Google Guava自动刷新缓存?),但是由于我的声誉太低,我无法写评论。因此,我必须创建一个新主题。感谢您的理解。

看到这段代码,

LoadingCache<K, V> cache = CacheBuilder.newBuilder()
        .refreshAfterWrite(15, TimeUnit.MINUTES)
        .maximumSize(100)
        .build(new MyCacheLoader());

如果一个条目A至少一次加载了她的值,那么上述代码是否真的足以每15分钟自动重新加载与键A关联的值?

当然,正如Frank所提到的,“我重写MyCacheLoader中的CacheBuilder.reload(K,V)方法,以便它异步执行。” 还是我要添加代码?如果是,在哪里?非常感谢你

PS:JB,javadoc很完美,但是我的英语水平很低。实际上,我的CacheLoader的重写重载可以查看是否必须对某个密钥执行一次真正的重载,如果是,则为该密钥实现一次真正的重载。否则,请勿真正重新加载该键的缓存。而且,即使在第二种情况下(没有真正的重载),我是否也每隔15分钟调用一次覆盖的重载方法?我认为是这样,但我是对的吗?谢谢

弗兰克·帕瓦高(Frank Pavageau)

一个LoadingCache建有

LoadingCache<K, V> cache = CacheBuilder.newBuilder()
        .refreshAfterWrite(15, TimeUnit.MINUTES)
        .maximumSize(100)
        .build(new MyCacheLoader());

不会刷新本身自动条目每隔15分钟,作为缓存不创建线程做任何形式的管理(到期或刷新项)。如果你打电话cache.get(someKey),然后20分钟后再次调用它,它就会刷新条目呼叫的结果,所提供的输入没有被拆迁户到期的要maximumSize被达到的,当然。

我不太确定您要问什么CacheLoader::reload和异步性。如果您覆盖它,那么您已经添加了代码,不是吗?希望这不只是对的调用super.reload(k, v),因为这不是异步的。如果需要,您可以使用更多详细信息来完成您的问题。

但是,如前所述,该方法不会针对任何当前密钥每15分钟自动调用一次,仅在再次请求输入时才按需调用。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在刷新页面时自动清除缓存?

来自分类Dev

如何使bash自动刷新程序位置的缓存?

来自分类Dev

使用Spring / EHCache加载时刷新缓存

来自分类Dev

使用Spring / EHCache加载时刷新缓存

来自分类Dev

使用Guava缓存将数据持久保存到硬盘

来自分类Dev

使用Guava对集合进行缓存过滤器

来自分类Dev

如何使用JS停止自动刷新

来自分类Dev

使用什么刷新模式“自动”或“提交”

来自分类Dev

如何使用AJAX自动刷新div或网页

来自分类Dev

如何使用RestKit自动处理令牌刷新

来自分类Dev

如何使用硒自动刷新chromeDriver?

来自分类Dev

使用JQuery自动刷新部分视图

来自分类Dev

使用REST代理的ExtJs网格自动刷新

来自分类Dev

如何使用模板自动刷新内容

来自分类Dev

如何使用URLConnection每小时刷新一次缓存?

来自分类Dev

如何刷新缓存

来自分类Dev

刷新Proguard类缓存

来自分类Dev

ElasticSearch对缓存的刷新效果

来自分类Dev

dup()和缓存刷新

来自分类Dev

Android离子缓存刷新

来自分类Dev

如何刷新缓存

来自分类Dev

dup()和缓存刷新

来自分类Dev

刷新cmus中的缓存

来自分类Dev

刷新Proguard类缓存

来自分类Dev

刷新 IntelliJ 缓存目录

来自分类Dev

从Guava缓存中删除元素

来自分类Dev

Guava缓存覆盖错误

来自分类Dev

使用定时过期时,x时间单位后Guava缓存未过期

来自分类Dev

google guava缓存存储值在哪里?..在EJB中使用它安全吗?