gpt4 book ai didi

java - java中多消费者单生产者缓存的实现

转载 作者:行者123 更新时间:2023-12-01 14:59:32 25 4
gpt4 key购买 nike

我的要求是维护一个固定大小的缓存,它为基于 java 的 Web 应用程序中的多个消费者和单个生产者提供支持。我的数据是这样的:

键 1、键 2、值

123,abc,列表1

123,定义,列表2

234,xyz,列表3

客户端或消费者将根据key1和key2查询此缓存。因此,如果多个消费者尝试同时针对相同的 key1 和 2 访问缓存,他们都应该从缓存中获取相同的数据作为响应。

我正在寻找最好的数据结构来使用。另请注意,缓存大小是固定的,因此如果缓存已满,生产者在尝试插入记录之前应删除第一个元素。

我目前在 map 中使用 map 。即键 1 用于外部映射,键 2 用于内部映射。然而我需要仔细查看它来获取我认为效率低下的信息。

有什么建议吗?

最佳答案

首先,我会将您的缓存扁平化为单个 2 个组件键(即将 key1 和 key2 组合成一个复合键类)。

其次,我会使用现有的缓存实现,而不是重新发明轮子。对于“简单”用法,您可以同步对 LinkedHashMap 的访问(您可以使用 removeEldestEntry() 方法按大小限制)。如果您需要更复杂的线程处理,那么我会看看类似 ehcache 的东西或Guava (在其他答案中提到)。

关于java - java中多消费者单生产者缓存的实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13883127/

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