问题标签 [caffeine-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.
caffeine - 咖啡因读/写在高负载下需要更长的时间
这就是我在 Spring Boot 中构建咖啡因缓存的方式:
我使用以下同步方法:
当缓存负载很高时,我看到 get/put 时间增加(> 100ms),这让我想这些调用是否应该在 hystrix 之后,但我认为这将是一个过度的为内存搜索启动线程?
此外,我看到 GC 经常发生,我相信这可能会影响读/写时间。关于设置 GC 的任何建议/最佳实践或我可以采取的任何其他一般性建议来改善延迟?谢谢
caffeine-cache - 按大小驱逐咖啡因似乎不起作用
我正在使用咖啡因缓存。
我想把它放在大小限制之下,但它不能正常工作。
测试1:
另一个测试:尝试获取密钥并将最大值设置为 1
最后一次测试:运行 100 次,最大尺寸 1
有人可以帮我理解这一点以及如何使其正常工作吗?
感谢 Ben Manes,我补充说.executor(Runnable::run)
现在这样做之后,我只得到 3 件物品
- 这不会阻止我的线程吗?
- 为什么我已经多次使用它的缓存中没有键 5?
caffeine - 咖啡因缓存 - 如何获取元素创建日期的信息
有没有办法从 CaffeineCache 访问元素的创建时间戳?种cache.get("x").getTimestamp()
?
caffeine - 咖啡因缓存,仅在放置成功时才执行过期元素的驱逐
我使用 Caffeine 缓存来缓存来自需要提供给休息端点的数据库的数据。因此缓存仅在数据库上的读取操作时更新。
在名义情况下,我希望缓存带头响应,直到数据不超过某个时间点(=>这种情况通过定义正确的过期选项就可以了)
如果数据库访问失败,即使缓存中的数据过期,我也想回退到缓存。此用例假设过期数据尚未删除。
我正在考虑的解决方案是制作Eviction of Items from the cache only after a successful PUT
(成功的 PUT 意味着数据库工作正常)。那有可能吗?
spring-boot - 带有 Spring Boot 的咖啡因缓存
我的 DAO 层采用了一种昂贵的方法,如下所示:
另一个作为
我的缓存配置类为:
我正在使用spring boot :: 2.2.6.RELEASE,我的pom包括:
我错过了什么吗?我想维护一个缓存“功能”和“用户故事”,并在调用 DAO 方法后异步更新它。
我收到以下错误:
无法加载配置类:com.packageName.CaffeineCacheConfig
引起:java.lang.NoClassDefFoundError: com/github/benmanes/caffeine/cache/Caffeine
引起:java.lang.ClassNotFoundException:com.github.benmanes.caffeine.cache.Caffeine
我发现这些报告与类似问题有关:CaffeineGit-1和CaffeineGit-Related
java - 如何在咖啡因缓存中缓存空值
我正在使用咖啡因缓存来存储从外部系统接收到的数据。
结果,
咖啡因不会在缓存中保存空值。如何在咖啡因中存储空值?
java - 咖啡因:当 AsyncLoader 无法刷新时使用陈旧的值
我想将我的缓存配置Caffeine
为在加载程序无法刷新缓存时返回陈旧的结果。以下 Kotlin 代码演示了这种情况:
我希望此测试能够通过,但我收到以下错误:
我在 Kotlin 中编写了代码,但我认为这个问题与 Kotlin 协程无关。我想将 Caffeine 配置为在刷新时不抛出,而是在缓存中返回之前的结果。
java - 使用 Spring 表达式语言的 Spring Boot 咖啡因缓存
我正在使用带有咖啡因缓存的 Spring Boot。我的缓存键是 Long 并且我需要键是例如:“1234-RULE”,其中 1234 是 Long 对象,-RULE 只是一个后缀。我尝试了以下方法来实现这一目标:
在调试时,我收到错误:
我的 rule.id 是 Long,我用来连接 id 和后缀的表达式似乎不正确。你能告诉我如何在这里为我的用例连接一个长字符串。
java - 每个关键过期时间的咖啡因示例
是否有任何关于如何在咖啡因中使用每个密钥到期的示例?
我看到下面的例子——这是否意味着我们要为每个键创建一个 Caffeine 缓存实例?
https://github.com/ben-manes/caffeine/issues/114#issuecomment-300602200
我查看了实现,看看内部如何使用过期接口的实现。
所以说我的图形对象有一个到期时间的方法..这是一个正确的用法吗?
现在,任何时候我执行以下操作——每次密钥到期都会为插入的密钥启用——
java - 一个应用程序中有多少个 Caffeine Cache 实例太多了?
我有一个用例,我想针对字符串键缓存元素映射,其中映射中的每个元素都可以有自己的到期时间。我打算使用缓存的缓存并利用咖啡因中非常酷的变量到期。
所以类似的东西。
现在,内部缓存应该是动态创建的,父缓存可以有数千个条目。我想知道这是否可以做,或者它是否真的不好使用咖啡因。我担心的是,对于每个内部Cache<String, ObjectWithVariableExpiry>
,计时器线程/逻辑可能会成为资源消耗。
非常感谢任何建议。