问题标签 [caffeine]
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.
caching - 咖啡因缓存手动填充示例中的未知类和方法
Caffeine Cache的Manual Population示例中的Graph类和createExpensiveGraph()方法是什么:
https://github.com/ben-manes/caffeine/wiki/Population
?
java - 使用咖啡因获取磁盘上的值
我正在考虑将咖啡因用于卸载到磁盘的值。键很小,但值可能需要几兆字节。我想,我可以依靠一个RemovalListener
来收拾烂摊子。
为了限制磁盘使用,我可以使用Caffeine.weigher
. 但是,maximumWeight
不能与 一起使用maximumSize
,因此在我的磁盘填充到足以导致驱逐之前,我可能会耗尽内存(因为使用了许多缓存条目)。
我想,这不太可能,但有可能,因为平均条目大小没有下限。
- 这样使用内存缓存有意义吗?
- 有充分的理由为什么
maximumSize
和maximumWeight
相互排斥?我可以想象两者共享一个插槽,但每个缓存节省 8 个字节恕我直言,这不算数。 - 有没有绕过这个限制的技巧?
spring-boot - 测试 Spring Boot 缓存(咖啡因)
我的缓存配置如下;
我要测试的服务:
存储库中所需的方法用@Cacheable("books")
.
我需要编写一个显示缓存工作的测试。所以我ticker
在测试中创建了另一个 bean 来覆盖CacheConfiguration
. 编码;
但它在标有//FAILS HERE
消息的行处失败;
org.mockito.exceptions.verification.TooManyActualInvocations:
simpleBookRepository.getByIsbn("isbn-8442");
Wanted 1 time:
-> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
But was 2 times. Undesired invocation:
-> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
为什么会失败?它不应该使用缓存吗?还是我的测试错了?
非常感谢任何帮助或指示!:)
java - Caffeine Cache.asMap 视图的行为
Javadoc说:
以线程安全映射的形式返回存储在此缓存中的条目的视图。对地图的修改直接影响缓存。
我缺少的是有关访问视图是否会影响接纳和驱逐政策的信息。根据这个旧的相关问题,它没有:
在 Guava 的 CacheBuilder 中,我们专门添加了 asMap() 视图以允许绕过缓存管理例程。cache.asMap().get(key) 是一个 peek 操作。
这肯定是有道理的。OTOH 视图提供了许多直接不可用的操作,用户可能会想使用它们,希望他们像直接操作一样更新访问统计信息。
例如,我发现自己使用cache.asMap().putIfAbsent
的是键的功能,所以替换它们是没有意义的。我希望它的工作方式cache.put
与条目不存在的情况完全相同。
java - 咖啡因:无法向 AsyncLoadingCache 提供 CacheWriter
我正在尝试编写一个AsyncLoadingCache
接受 aCacheWriter
并且我得到一个IllegalStateException
.
这是我的代码:
我得到了这个痕迹
com.github.benmanes.caffeine.cache.Caffeine.requireState(Caffeine.java:174) 的线程“main”java.lang.IllegalStateException 中的异常在 com.github.benmanes.caffeine.cache.Caffeine.buildAsync(Caffeine.java :854) 在 com.mycompany.caffeinetest.Main.main(Main.java:41)
如果我将缓存更改为 aLoadingCache
或删除.writer(cacheWriter)
,代码将正常运行。我究竟做错了什么?看来我为这两个对象提供了正确的类型。
spring - 咖啡因缓存记录
我正在使用带有 spring 注释的咖啡因缓存提供程序,当条目被放入缓存或被驱逐或缓存上发生的任何活动时,我无法看到来自 caffeinecachemanager 的日志。我是否必须明确提及启用或禁用咖啡因的属性日志?
有人可以帮忙吗?@cachable 填充缓存时如何记录消息?当缓存条目从缓存中驱逐时如何记录?有什么方法可以检查使用缓存名称存储的所有缓存条目吗?使用 spring 注释和 CaffeineCacheManager 时是否需要 AOP 配置。?如果是这样,请帮助示例示例。
caching - 咖啡因缓存刷新/手动或按需重新加载缓存
我在我的应用程序中实现了咖啡因缓存。我正在缓存来自几个静态表的数据。但我想知道我是否可以手动或使用 REST API 或任何其他方式按需刷新/清除/重新加载缓存。任何人都可以提出一种实现这种要求的方法。
我想要类似的东西:- 一个端点 url,例如:- http://localhost:8080/refreshCache
这将在内部触发某些方法并手动清除缓存或重新加载缓存中的新值。
下面是缓存配置:
java - 使用咖啡因进行春季启动缓存以使用 refreshAfterWrite 将整个表加载到缓存中
我已经在使用 spring boot 并且希望能够使用它提供的缓存层来缓存缓存中的整个表。但我还需要能够在一段时间后(每 5 分钟)刷新缓存。
标准的可缓存很简单,但是当你尝试添加 refreshAfterWrite 时,你需要定义一个 loadingCache。
当您的注释方法没有任何参数时,如何做到这一点(以 Spring bean 方式)?
如果您现在需要定义特定于实现的对象,那么使用 spring 抽象有什么意义呢?
spring - 如何使用咖啡因缓存在春季启动时调用@Cachable?
我想从数据库中获取数据并在启动时使用咖啡因缓存存储到缓存中。每当我想要该数据时,我都需要从缓存本身中获取它而不调用 DAO 类
我是缓存新手。
caffeine - 如何将 SoftWeak 保存策略与 Timebased 混合使用?
再会 !我可以混合基于时间和基于参考的策略吗?我想要基于具有 5 分钟生命周期的 SoftReference 的缓存,我可以从 box 中获取它吗?