问题标签 [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.
google-guava-cache - 在 Guava Cache 中重置过期时间
我正在使用 Guava Cache Loader 并从配置文件中获取过期时间。
我想知道是否有办法以编程方式重置给定缓存的到期时间值。在我的情况下,这对于拾取对配置值的更改的侦听器的操作是可取的。
java - Guava Cache size 方法不返回缓存中的实际条目数
我在我的应用程序中使用番石榴缓存来提高性能。我使用LoadingCache中的putAll API 在缓存中插入了 850 个条目。我配置的最大缓存大小是 20K 条目。我正在使用测试类TestCacheSize测试缓存大小:
从缓存大小的javadocs:
size 返回缓存中的近似条目数。
任何人都可以提供有关 850 到 9467 如何作为近似值的见解吗?
java - 正确使用 Guava CacheBuilder
有人可以解释一下如何正确使用 Guava CacheBuilder。
如果数据不可访问,getFromNetwork() 是否应该引发异常或返回 null?我是否应该引发执行异常并使用 guavaCache.get()。我只是不确定文档对未经检查的异常意味着什么?
我是否按照应该使用的方式使用 CacheBuilder?我不使用 guavaCache.put()?这是自动完成的。正确的?
java - 限制将超大对象放入 Guava 缓存
有没有办法限制放置大于给定大小的对象。
caching - 在特定时间强制刷新 Guava Cache
我试图让这个缓存每天凌晨 3 点刷新。问题是用户必须等待很长时间才能使缓存预热。所以我宁愿它在一夜之间刷新,并准备好在早上快速访问 UI。
我希望能够在缓存中提供一组固定的键,以便在凌晨 3 点刷新。
我阅读了谷歌文档,但似乎只刷新了已经加载到缓存中的数据。
TL;DR - 希望在一天中的特定时间使用一组固定的键来预热缓存
java - 番石榴缓存可以使用的最大优选大小是多少?
guava 缓存可以使用的最大优选大小是多少?我的系统有 8 GB RAM,所以在不降低系统和其他应用程序性能的情况下,我可以使用多少 MB?当 RAM 存储不可用时,Guava 缓存是否也使用硬盘存储?
caching - 我们可以在 Spring Boot 中同时使用多种类型的缓存(redis 和 guava)吗?
我试图在我的 Spring Boot 应用程序中为不同类型的对象提供两种缓存实现。我想根据该方法将某些对象存储在 redis 缓存中,而将其他对象存储在 guava 缓存中。每当我实现两个扩展 CachingConfigurerSupport 的类时,我都会收到一个错误,即该类只允许一个实例。谁能建议我怎么做?
spring - 缓存 Spring Data 存储库/CacheEvict 不起作用
我正在使用Spring Boot, Spring Data, with QueryDSL
. 我的大部分查询都是QueryDSL
基于。我想实现一个存储User
查询的简单缓存,一旦单个实体被清除updated/saved
,整个实体就会Cache
被清除。
所以这是我的存储库接口:
如您所见,我已经缓存了所有“查找”方法并使用保存方法来驱逐所有条目。通常使用的是:
Caching
仅在存储库上设置,在服务/控制器等上没有设置。
这是我的配置:
我还应该补充一点,User
实体有几个子类,但我正在使用UserRepository
问题是即使我的搜索请求被成功缓存,当我执行保存时缓存也不会被驱逐。
有什么我做错了吗?
java - Google Guava 缓存自动删除 Optional.absent() 的值
是否可以使用值 Optional.absent() 自动驱逐记录?在某些应用程序中, Optional.absent() 可能不是某些键的值。例如,如果应用程序包含 http 调用,其中键可以是某个字符串,值是从 http 调用返回的响应,那么由于网络问题或身份验证失败,http 调用可能会返回一些无效值(例如 null),那么invalid 可以保存为 Optional.absent() 与缓存中的键。稍后,如果网络和身份验证问题得到解决,key->invalidValue 仍然保留在缓存中。解决此问题的最佳方法是什么?
java - 是否有任何第三方 java 缓存提供对过期事件的控制?
我的用例是我需要在服务之上实现缓存,应该在一定时间后(从创建时间开始)使条目过期。
如果条目即将过期,则应进行服务查找以获取最新条目。让调用是服务刷新。
但是,假设如果服务刷新失败,那么我应该能够使用缓存中的陈旧数据。
但由于缓存已经过期,我没有那个条目。
所以,我正在考虑控制缓存的过期,只有当服务可用于获取最新数据时,缓存条目才会过期,否则不要删除该条目。
我正在研究 Google Guava 缓存,但它只提供了一个删除监听器,它只会通知我该事件,但我无法用它来控制过期事件。
是否有任何第三方缓存实现可以满足我的目的?