问题标签 [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.

0 投票
0 回答
140 浏览

caching - 咖啡因缓存手动填充示例中的未知类和方法

Caffeine Cache的Manual Population示例中的Graph类和createExpensiveGraph()方法是什么:

https://github.com/ben-manes/caffeine/wiki/Population

?

0 投票
0 回答
1338 浏览

java - 使用咖啡因获取磁盘上的值

我正在考虑将咖啡因用于卸载到磁盘的值。键很小,但值可能需要几兆字节。我想,我可以依靠一个RemovalListener来收拾烂摊子。

为了限制磁盘使用,我可以使用Caffeine.weigher. 但是,maximumWeight不能与 一起使用maximumSize,因此在我的磁盘填充到足以导致驱逐之前,我可能会耗尽内存(因为使用了许多缓存条目)。

我想,这不太可能,但有可能,因为平均条目大小没有下限。

  • 这样使用内存缓存有意义吗?
  • 有充分的理由为什么maximumSizemaximumWeight相互排斥?我可以想象两者共享一个插槽,但每个缓存节省 8 个字节恕我直言,这不算数。
  • 有没有绕过这个限制的技巧?
0 投票
1 回答
5653 浏览

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)

为什么会失败?它不应该使用缓存吗?还是我的测试错了?

非常感谢任何帮助或指示!:)

0 投票
1 回答
1735 浏览

java - Caffeine Cache.asMap 视图的行为

Javadoc说:

以线程安全映射的形式返回存储在此缓存中的条目的视图。对地图的修改直接影响缓存。

我缺少的是有关访问视图是否会影响接纳和驱逐政策的信息。根据这个旧的相关问题,它没有:

在 Guava 的 CacheBuilder 中,我们专门添加了 asMap() 视图以允许绕过缓存管理例程。cache.asMap().get(key) 是一个 peek 操作。

这肯定是有道理的。OTOH 视图提供了许多直接不可用的操作,用户可能会想使用它们,希望他们像直接操作一样更新访问统计信息。

例如,我发现自己使用cache.asMap().putIfAbsent的是键的功能,所以替换它们是没有意义的。我希望它的工作方式cache.put与条目不存在的情况完全相同。

0 投票
1 回答
867 浏览

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),代码将正常运行。我究竟做错了什么?看来我为这两个对象提供了正确的类型。

0 投票
0 回答
950 浏览

spring - 咖啡因缓存记录

我正在使用带有 spring 注释的咖啡因缓存提供程序,当条目被放入缓存或被驱逐或缓存上发生的任何活动时,我无法看到来自 caffeinecachemanager 的日志。我是否必须明确提及启用或禁用咖啡因的属性日志?

有人可以帮忙吗?@cachable 填充缓存时如何记录消息?当缓存条目从缓存中驱逐时如何记录?有什么方法可以检查使用缓存名称存储的所有缓存条目吗?使用 spring 注释和 CaffeineCacheManager 时是否需要 AOP 配置。?如果是这样,请帮助示例示例。

0 投票
1 回答
13181 浏览

caching - 咖啡因缓存刷新/手动或按需重新加载缓存

我在我的应用程序中实现了咖啡因缓存。我正在缓存来自几个静态表的数据。但我想知道我是否可以手动或使用 REST API 或任何其他方式按需刷新/清除/重新加载缓存。任何人都可以提出一种实现这种要求的方法。

我想要类似的东西:- 一个端点 url,例如:- http://localhost:8080/refreshCache

这将在内部触发某些方法并手动清除缓存或重新加载缓存中的新值。

下面是缓存配置:

0 投票
0 回答
2129 浏览

java - 使用咖啡因进行春季启动缓存以使用 refreshAfterWrite 将整个表加载到缓存中

我已经在使用 spring boot 并且希望能够使用它提供的缓存层来缓存缓存中的整个表。但我还需要能够在一段时间后(每 5 分钟)刷新缓存。

标准的可缓存很简单,但是当你尝试添加 refreshAfterWrite 时,你需要定义一个 loadingCache。

当您的注释方法没有任何参数时,如何做到这一点(以 Spring bean 方式)?

如果您现在需要定义特定于实现的对象,那么使用 spring 抽象有什么意义呢?

0 投票
0 回答
1014 浏览

spring - 如何使用咖啡因缓存在春季启动时调用@Cachable?

我想从数据库中获取数据并在启动时使用咖啡因缓存存储到缓存中。每当我想要该数据时,我都需要从缓存本身中获取它而不调用 DAO 类

我是缓存新手。

0 投票
1 回答
40 浏览

caffeine - 如何将 SoftWeak 保存策略与 Timebased 混合使用?

再会 !我可以混合基于时间和基于参考的策略吗?我想要基于具有 5 分钟生命周期的 SoftReference 的缓存,我可以从 box 中获取它吗?