java - Google Guava 中复杂的有时限缓存键

标签 java caching guava

抱歉,标题不好,但我不知道如何表达我的用例。

我正在尝试使用 Guava 缓存来加载由 ID 键入的用户配置文件对象。问题是配置文件可能会随着时间的推移而改变,所以我还需要按日期键入请求。此外,我只想为单个用户缓存一个配置文件(而不是为单个用户一周中的每一天缓存 7 个不同的配置文件)。

有没有办法仅在日期更改时用新加载的缓存条目替换现有的缓存条目,而不是为新的唯一键添加新的缓存条目?

为了清楚起见:

示例 key 类似于 <user id, date>

如果我有一个由 <123, "2013-02-13"> 键控的缓存条目,并且收到 <123, "2013-02-14"> 的请求,加载新配置文件后,缓存中应该只有用户 123 的一个条目。

谢谢!

最佳答案

听起来你应该做的是拥有一个 Cache<UserId, DateAndProfile> ,然后检查自己是否 DateAndProfile需要被覆盖。 Guava 缓存 API 不会让您以任何花哨的方式将不同的键视为“有点相同”。

关于java - Google Guava 中复杂的有时限缓存键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14886180/

相关文章:

java - 是否可以在http请求中获取输入设备详细信息

java - 通过接口(interface)上的注释使@Cachable 条目无效?

caching - Grails 不会加载在静态资源中所做的更改(除非重新启动)

java - Guava 是否有将可迭代对象转换为唯一类型映射的方法?

java - RichFaces 4 上传文件时的通知

java - Github 显示相同内容的差异

java - 如何比较空值?

javascript - 清除 JavaScript 中的缓存

java - 构造函数LinkedHashMultimap不可见

java - IllegalArgumentException - Google Guava 将字符串转换为 HashMap