问题标签 [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.
java - 春天 - 使用谷歌番石榴缓存
我正在尝试在我的 spring 应用程序中使用 google guava 缓存,但结果永远不会缓存。
这是我的步骤:
在conf文件中:
在课堂上我想使用缓存:
然后当我打电话时:
它每次都进入函数而不使用缓存:控制台:
有人知道我错过了什么或者我该如何调试?
caching - 不同类型缓存的区别及意义
Ehcache 和 Guava 缓存有什么区别?在哪些情况下我会使用哪种类型的缓存?
java - 对缓存方法的并发调用
我正在使用带有 Guava 缓存的 Spring 缓存抽象。我有一个带有@Cacheable 注释和参数(用作缓存键)的方法来将值放入缓存中。但是这个方法是在多线程环境中访问的,所以有多个并发调用具有相同参数值的方法。这意味着创建要缓存的值的相同逻辑对同一个缓存键多次执行,并同时多次放入缓存中。如果对于每个参数值(缓存键),该方法只调用一次并放入缓存一次,效率会更高。Spring可以处理这样的场景吗?
multithreading - 线程在 AbstractFuture 上等待条件下停放
所以我们使用的是 Guava v18。我们将使用此内容进行很多线程:
我们的番石榴配置是:
我对可以检查什么以查看导致问题的原因有点无能为力。你能建议我可以检查什么吗?
java - 如何使用番石榴谓词获取数组列表中的重复元素
我有一个包含一组元素的数组。我需要通过使用 java 中断言的番石榴比较特定字段来找到该数组中的重复元素。
例如:
我有一个包含一组员工详细信息的数组列表。我需要找到同名员工的详细信息。
java - 谷歌番石榴缓存弱参考值没有给出驱逐通知
我在我们的应用程序中使用了谷歌番石榴,基于下面的weakValues。
删除缓存弱值后不会立即调用删除侦听器。我必须基于此清除本机资源,因此我的程序结束时不会在本机端释放内存。这是一个已知问题吗?
spring-cache - @CacheEvict with key="#id" 抛出 NullPointerException
我正在尝试使用 Spring Caching 注释@Cacheable
并@CacheEvict
与 GuavaCacheManager 一起使用。
我用这两个测试创建了一个测试用例:
cachesById
- 验证对带有注释的方法的两次调用是否@Cacheable
返回相同的对象evict
@CacheEvict
- 如果在这两个调用之间调用带有注释的方法,则验证是否返回两个不同的实例
当我没有为 指定密钥时,两者都可以正常工作@CacheEvict
,但是当我这样做时,会出现以下异常:
这可以通过执行以下测试来重现。
但是,如果我改变测试通过
进入:
..但是我错过了需要为Entity
. 有谁知道我错过了什么?
谢谢!
java - 防止条目从番石榴缓存中被驱逐
我正在浏览 Guava Cache 示例,想知道是否有办法防止某些条目在某些情况下从缓存中被逐出。
就像,如果应用程序正在使用一个条目,那么您不太可能希望它被驱逐!
我能想到的一种CacheBuilder.weigher()
方法是使用基于大小的驱逐方法,正如 Javadoc 所述:
当条目的权重为零时,将不会考虑基于大小的驱逐(尽管它仍然可以通过其他方式驱逐)。
但是权重是在开始时计算的,并且在缓存条目的生命周期内是静态的。因此,当应用程序不再使用某个条目时,它的权重不能设置为零。
有没有其他有效的方法来实现这一目标?就像,在驱逐特定条目之前,番石榴缓存会调用一个方法,无论它是否应该被驱逐!
另外,在 MVP 应用程序中缓存 Presenter 实例是不是一个坏主意?因为,我将使用 Guava Cache 在我的应用程序中缓存 Presenter 实例!
multithreading - Google Guava Cache 是否在同一线程上加载?
Google Guava Cache 默认会在同一个线程上加载缓存吗?
代码:
会在addCache
不同的线程上进行调用吗?据我所知,这是一个同步调用,但我不确定。
java - 如何在不触发加载的情况下从加载缓存中获取
我正在使用 java 8 和番石榴 14.0
我用 load() 设置了一个 LoadingCache 和一个 CacheLoader。每次我从缓存中获取 load() 时,代码都会工作
有时我想在不调用 load() 的情况下检查数据是否在缓存中。这可能吗?
我尝试使用 getIfPresent() 但我仍然看到 load() 被调用。
我正在查看 AsMap 但担心它的大小,因为它从缓存中获取所有数据
提前感谢您提供任何信息/建议
巴里