问题标签 [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 回答
694 浏览

google-guava-cache - 在 Guava Cache 中重置过期时间

我正在使用 Guava Cache Loader 并从配置文件中获取过期时间。

我想知道是否有办法以编程方式重置给定缓存的到期时间值。在我的情况下,这对于拾取对配置值的更改的侦听器的操作是可取的。

0 投票
0 回答
2839 浏览

java - Guava Cache size 方法不返回缓存中的实际条目数

我在我的应用程序中使用番石榴缓存来提高性能。我使用LoadingCache中的putAll API 在缓存中插入了 850 个条目。我配置的最大缓存大小是 20K 条目。我正在使用测试类TestCacheSize测试缓存大小:

从缓存大小的javadocs

size 返回缓存中的近似条目数。

任何人都可以提供有关 850 到 9467 如何作为近似值的见解吗?

0 投票
1 回答
803 浏览

java - 正确使用 Guava CacheBuilder

有人可以解释一下如何正确使用 Guava CacheBuilder。

如果数据不可访问,getFromNetwork() 是否应该引发异常或返回 null?我是否应该引发执行异常并使用 guavaCache.get()。我只是不确定文档对未经检查的异常意味着什么?

我是否按照应该使用的方式使用 CacheBuilder?我不使用 guavaCache.put()?这是自动完成的。正确的?

0 投票
1 回答
130 浏览

java - 限制将超大对象放入 Guava 缓存

有没有办法限制放置大于给定大小的对象。

0 投票
1 回答
2856 浏览

caching - 在特定时间强制刷新 Guava Cache

我试图让这个缓存每天凌晨 3 点刷新。问题是用户必须等待很长时间才能使缓存预热。所以我宁愿它在一夜之间刷新,并准备好在早上快速访问 UI。

我希望能够在缓存中提供一组固定的键,以便在凌晨 3 点刷新。

我阅读了谷歌文档,但似乎只刷新了已经加载到缓存中的数据。

TL;DR - 希望在一天中的特定时间使用一组固定的键来预热缓存

0 投票
1 回答
5637 浏览

java - 番石榴缓存可以使用的最大优选大小是多少?

guava 缓存可以使用的最大优选大小是多少?我的系统有 8 GB RAM,所以在不降低系统和其他应用程序性能的情况下,我可以使用多少 MB?当 RAM 存储不可用时,Guava 缓存是否也使用硬盘存储?

0 投票
2 回答
1267 浏览

caching - 我们可以在 Spring Boot 中同时使用多种类型的缓存(redis 和 guava)吗?

我试图在我的 Spring Boot 应用程序中为不同类型的对象提供两种缓存实现。我想根据该方法将某些对象存储在 redis 缓存中,而将其他对象存储在 guava 缓存中。每当我实现两个扩展 CachingConfigurerSupport 的类时,我都会收到一个错误,即该类只允许一个实例。谁能建议我怎么做?

0 投票
0 回答
1176 浏览

spring - 缓存 Spring Data 存储库/CacheEvict 不起作用

我正在使用Spring Boot, Spring Data, with QueryDSL. 我的大部分查询都是QueryDSL基于。我想实现一个存储User查询的简单缓存,一旦单个实体被清除updated/saved,整个实体就会Cache被清除。

所以这是我的存储库接口:

如您所见,我已经缓存了所有“查找”方法并使用保存方法来驱逐所有条目。通常使用的是:

Caching仅在存储库上设置,在服务/控制器等上没有设置。

这是我的配置:

我还应该补充一点,User实体有几个子类,但我正在使用UserRepository

问题是即使我的搜索请求被成功缓存,当我执行保存时缓存也不会被驱逐。

有什么我做错了吗?

0 投票
1 回答
419 浏览

java - Google Guava 缓存自动删除 Optional.absent() 的值

是否可以使用值 Optional.absent() 自动驱逐记录?在某些应用程序中, Optional.absent() 可能不是某些键的值。例如,如果应用程序包含 http 调用,其中键可以是某个字符串,值是从 http 调用返回的响应,那么由于网络问题或身份验证失败,http 调用可能会返回一些无效值(例如 null),那么invalid 可以保存为 Optional.absent() 与缓存中的键。稍后,如果网络和身份验证问题得到解决,key->invalidValue 仍然保留在缓存中。解决此问题的最佳方法是什么?

0 投票
1 回答
101 浏览

java - 是否有任何第三方 java 缓存提供对过期事件的控制?

我的用例是我需要在服务之上实现缓存,应该在一定时间后(从创建时间开始)使条目过期。

如果条目即将过期,则应进行服务查找以获取最新条目。让调用是服务刷新。

但是,假设如果服务刷新失败,那么我应该能够使用缓存中的陈旧数据。

但由于缓存已经过期,我没有那个条目。

所以,我正在考虑控制缓存的过期,只有当服务可用于获取最新数据时,缓存条目才会过期,否则不要删除该条目。

我正在研究 Google Guava 缓存,但它只提供了一个删除监听器,它只会通知我该事件,但我无法用它来控制过期事件。

是否有任何第三方缓存实现可以满足我的目的?