问题标签 [google-guava-cache]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
979 浏览

java - 春天 - 使用谷歌番石榴缓存

我正在尝试在我的 spring 应用程序中使用 google guava 缓存,但结果永远不会缓存。

这是我的步骤:

在conf文件中:

在课堂上我想使用缓存:

然后当我打电话时:

它每次都进入函数而不使用缓存:控制台:

有人知道我错过了什么或者我该如何调试?

0 投票
1 回答
223 浏览

caching - 不同类型缓存的区别及意义

Ehcache 和 Guava 缓存有什么区别?在哪些情况下我会使用哪种类型的缓存?

0 投票
1 回答
1035 浏览

java - 对缓存方法的并发调用

我正在使用带有 Guava 缓存的 Spring 缓存抽象。我有一个带有@Cacheable 注释和参数(用作缓存键)的方法来将值放入缓存中。但是这个方法是在多线程环境中访问的,所以有多个并发调用具有相同参数值的方法。这意味着创建要缓存的值的相同逻辑对同一个缓存键多次执行,并同时多次放入缓存中。如果对于每个参数值(缓存键),该方法只调用一次并放入缓存一次,效率会更高。Spring可以处理这样的场景吗?

0 投票
1 回答
2612 浏览

multithreading - 线程在 AbstractFuture 上等待条件下停放

所以我们使用的是 Guava v18。我们将使用此内容进行很多线程:

我们的番石榴配置是:

我对可以检查什么以查看导致问题的原因有点无能为力。你能建议我可以检查什么吗?

0 投票
1 回答
2342 浏览

java - 如何使用番石榴谓词获取数组列表中的重复元素

我有一个包含一组元素的数组。我需要通过使用 java 中断言的番石榴比较特定字段来找到该数组中的重复元素。

例如:
我有一个包含一组员工详细信息的数组列表。我需要找到同名员工的详细信息。

0 投票
2 回答
1603 浏览

java - 谷歌番石榴缓存弱参考值没有给出驱逐通知

我在我们的应用程序中使用了谷歌番石榴,基于下面的weakValues。

删除缓存弱值后不会立即调用删除侦听器。我必须基于此清除本机资源,因此我的程序结束时不会在本机端释放内存。这是一个已知问题吗?

0 投票
1 回答
7533 浏览

spring-cache - @CacheEvict with key="#id" 抛出 NullPointerException

我正在尝试使用 Spring Caching 注释@Cacheable@CacheEvict与 GuavaCacheManager 一起使用。

我用这两个测试创建了一个测试用例:

  1. cachesById- 验证对带有注释的方法的两次调用是否@Cacheable返回相同的对象
  2. evict@CacheEvict- 如果在这两个调用之间调用带有注释的方法,则验证是否返回两个不同的实例

当我没有为 指定密钥时,两者都可以正常工作@CacheEvict,但是当我这样做时,会出现以下异常:

这可以通过执行以下测试来重现。

但是,如果我改变测试通过

进入:

..但是我错过了需要为Entity. 有谁知道我错过了什么?

谢谢!

0 投票
1 回答
1082 浏览

java - 防止条目从番石榴缓存中被驱逐

我正在浏览 Guava Cache 示例,想知道是否有办法防止某些条目在某些情况下从缓存中被逐出。

就像,如果应用程序正在使用一个条目,那么您不太可能希望它被驱逐!

我能想到的一种CacheBuilder.weigher()方法是使用基于大小的驱逐方法,正如 Javadoc 所述:

当条目的权重为零时,将不会考虑基于大小的驱逐(尽管它仍然可以通过其他方式驱逐)。

但是权重是在开始时计算的,并且在缓存条目的生命周期内是静态的。因此,当应用程序不再使用某个条目时,它的权重不能设置为零。

有没有其他有效的方法来实现这一目标?就像,在驱逐特定条目之前,番石榴缓存会调用一个方法,无论它是否应该被驱逐!

另外,在 MVP 应用程序中缓存 Presenter 实例是不是一个坏主意?因为,我将使用 Guava Cache 在我的应用程序中缓存 Presenter 实例!

0 投票
2 回答
4076 浏览

multithreading - Google Guava Cache 是否在同一线程上加载?

Google Guava Cache 默认会在同一个线程上加载缓存吗?

代码:

会在addCache不同的线程上进行调用吗?据我所知,这是一个同步调用,但我不确定。

0 投票
1 回答
204 浏览

java - 如何在不触发加载的情况下从加载缓存中获取

我正在使用 java 8 和番石榴 14.0

我用 load() 设置了一个 LoadingCache 和一个 CacheLoader。每次我从缓存中获取 load() 时,代码都会工作

有时我想在不调用 load() 的情况下检查数据是否在缓存中。这可能吗?

我尝试使用 getIfPresent() 但我仍然看到 load() 被调用。

我正在查看 AsMap 但担心它的大小,因为它从缓存中获取所有数据

提前感谢您提供任何信息/建议

巴里