类似于Guava的LoadingCache,但是是双向的?

时间:2017-08-16 17:42:56

标签: java caching guava

我正在使用允许用户更改其显示名称的帐户系统。为此,每个用户都有一个UUID。在我的程序中的各个点,我可能有一个UUID并想要它当前的显示名称,或者我可能有一个当前的显示名称,我想查找UUID。查找它涉及数据库调用或http请求,所以我想将结果缓存在内存中。我熟悉Guava's LoadingCache,但似乎我必须创建两个缓存(名称 - > UUID和UUID - >名称)才能实现此目的。 This seems bug-prone, similar to how a BiMap is better than two synchronous maps是否有类似于双向LoadingCache的东西?

1 个答案:

答案 0 :(得分:1)

对于这种情况,我不一定会担心一对容易出错的缓存:你不必保持两个方向同步,如果你没有这样做,就没有真正的失败。 UUID及其与用户的关系不会改变。

保持双向缓存正确同步很困难,但对于这种情况,它似乎有点过分。