gpt4 book ai didi

java - 我可以在 Hazelcast 中使用 LinkedHashMap 吗?

转载 作者:行者123 更新时间:2023-12-01 16:13:43 24 4
gpt4 key购买 nike

我可以以某种方式在Hazelcast(java spring)中使用linkedHashMap吗?我需要从 hazelcast 共享内存缓存中获取唯一记录,但要按照插入它们的顺序。我在 hazelcast 文档 ( https://docs.hazelcast.org/docs/latest-dev/manual/html-single/ ) 中发现它们提供了常见数据结构的分布式实现。但映射不保留元素顺序,列表或队列不删除重复数据。你知道我是否可以使用 linkedHashMap 或以某种方式获取唯一数据并保留它们的顺序?

最佳答案

有序或链接存储与数据网格的目标(高度并发和分布式存储)不兼容。

可以进行有序检索。 Hazelcast 的 Paging Predicate用比较器就可以了。或者量不太大,可以自己检索词条集并排序。

问题是,您必须提供订购字段。

如果您的数据已经具有某种始终唯一的序列号或时间戳,那么这很容易。

如果没有,也许类似 Atomic Long会做的。 getAndIncrement() 将为您提供一个用于每次插入的唯一编号。

但请注意,如果两个或多个线程同时插入,则会出现竞争条件。要解决这个问题,您需要在某处运行某种单例 @Service 来执行“获取下一个 seqno ; inset”步骤。

如果重新启动网格,原子计数器中的序列号将需要重新定位到正确的位置。

关于java - 我可以在 Hazelcast 中使用 LinkedHashMap 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62459701/

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