Google Guava中复杂的时间限制缓存键

时间:2013-02-14 23:51:41

标签: java caching guava

很抱歉标题很差,但我不知道如何说出我的用例。

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

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

为清楚起见:

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

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

谢谢!

1 个答案:

答案 0 :(得分:2)

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