关于持久化Map >堆外的数据库建议

问题描述 投票:0回答:1

我正在运行库存服务,我将从每个商店获取每个项目的库存状态的单独消息。我需要在item_id级别进行汇总。我需要在约10ms处检索汇总信息。

我基本上需要执行此List<item_store_level_inventory> --> Map<item_id,Map<store_id>>(以便我可以使用O(1)操作更新内部Map.Entry并使用O(1)操作检索外部Map.Entry。我看过Redis

  1. 具有item_id作为键,而item_store的字符串化数组作为值。 缺点:我将有一个竞赛条件,我必须对item_id分配分布式锁,而我试图远离它。
  2. 使用散列。 item_id将是哈希ID,store_id将是单独的哈希。 缺点:item_id级别检索为O(n)。我还没有描述它

这是我的统计信息:

数量(项)-500万

[count(stores):3K

最大(每件物品的存储量):1K

count(Unique item-store)]:7000万

只是让您了解数据大小,我在项目存储级别存储的只是3个值。现有,已分配和保留。

持久性无关紧要,因为我可以通过压缩的kafka主题轻松重现此特性。

FWIW,目前,它正在oracle中运行。我的组织热衷于从Oracle转移到内存数据存储。

非常感谢apt数据存储上的任何指针

我正在运行库存服务,我将从每个商店获取每个项目的库存状态的单独消息。我需要在item_id级别进行汇总。我需要在〜...

database caching database-design redis in-memory-database
1个回答
0
投票

只要您已经有一个与Oracle一起运行的解决方案,然后将该解决方案映射到内存中的SQL数据库(无需双关语),就应该很简单。我不相信NoSQL解决方案可以为您带来任何真正的优势,并且至少具有您已经确定的缺点。

© www.soinside.com 2019 - 2024. All rights reserved.