gpt4 book ai didi

java - 缓存键组织问题

转载 作者:行者123 更新时间:2023-11-29 06:16:43 25 4
gpt4 key购买 nike

我的实体有两个唯一 ID(是的,这是错误的,但这是一项要求)。我想组织此类实例的缓存。可以通过 id1 或 id2 或 id1 和 id2 在缓存中进行搜索。通过 id1 和 id2 搜索都可以 - 我将制作复合键。但是如何处理仅通过其中一个 id 进行搜索。缓存键应该是什么?我正在使用 ehcache。

我有几个键可能引用相同的情况对象。

像ehcache不支持这个功能,一样将为每个键存储对象(n个实例相同的对象,其中 n 是不同键的数量可以引用该对象)。

在某些时候我有知识来计算其他键,但在我需要它们之前。

情况:

生成 key (1)检查对象是否在缓存中(2)TRUE : 取回它

FALSE:处理新对象 (3)放在ehcache中返回对象

在第 (1) 点只知道其中一个键。在点(3) 有可能知道所有 key 对象可能在 ehcache 中与其相关联。问题是在 (2) 点需要 key 。

谢谢

最佳答案

一种选择是使用两个 map 。每个 id 集一个,但两者都指向同一组值。

如果搜索是在 id1 上查找第一个映射中的值,如果是在 id2 上,则只在第二个映射中查找。如果您需要同时搜索两者,请查找这两个值并查看这些值是否相同。

根据您的问题和以下评论的更新进行更新:在您的缓存中使用这两个键。是的,这会占用更多空间,有时您要查找的对象可能已经在另一个键下的缓存中。但是,缓存应该存储常见的查找键。它不应该关心该值可能存在于另一个键下。因此,我不会因为尝试优化缓存以基于两个键进行查找而给自己压力。

关于java - 缓存键组织问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4828442/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com