1

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

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

只有当日期发生变化时,有没有办法用新加载的缓存条目替换现有的缓存条目,而不是为新的唯一键添加新的缓存条目?

为了清楚起见:

示例密钥看起来像<user id, date>

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

谢谢!

4

1 回答 1

2

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

于 2013-02-14T23:57:17.797 回答