缓存有多个键,只有一个键可以读取

时间:2018-10-31 14:56:39

标签: java caching data-structures guava

这种情况似乎很普遍,但尚未找到任何解决方案。

以下情形:我需要实现一个将对象存储在内存中的缓存(可能基于例如Guava等)。我存储的对象可以通过以下任一方式识别:

(id)
(propA, propB, propC)

因此它是ID或三个属性的组合。现在,我当然可以使用组合键(一些简单的Java类或Pair)将其存储到缓存中:

[(id), (propA, propB, propC)] -> (object)

到目前为止,这没什么特别的。我的问题是,在读取缓存期间,我只有其中一个键。因此,计算组合键上的hashCode()不会达到缓存条目。

就目前而言,我想到一个解决方案,基本上是两个缓存/映射:

(propA, propB, propC) -> (id)
(id) -> (object)

有人知道实现此目的的另一种方法,或者甚至知道这种情况下的现有实现吗?

谢谢。

0 个答案:

没有答案