抱歉,标题不好,但我不知道如何表达我的用例。
我正在尝试使用 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/