我们有一个需求,我们需要搜索具有多个键的键,并且正在寻找多个索引。
例如: 交易数据包含以下参数:
- 日期
- 股票
- 价格
- 数量
- 帐号
我们将把每笔交易存储为一个以 Stock 为键的列表。这将使我们能够查询给定股票的所有交易。然而,我们也会有查询,比如一个账户中所有交易的列表。我们希望使用相同的缓存来获取此查询而不是新的缓存。要求是内存缓存(java),因为延迟要求非常低。此外,我们需要一个持久缓存,以便在应用程序重新启动时重新填充缓存。
如果有任何好的解决方案,请告诉我,因为持久缓存的唯一方法似乎是分布式缓存。
最佳答案
确保查询速度更快的一种方法是创建一个仅包含您想要查询的属性的 TradeMeta 对象,即
- 日期股票价格数量帐户 TradeMeta 对象可以存储在一个 Map 中,该 Map 具有上述所有键的索引。这确保 hazelcast 维护相关的桶以便于内部查找。可以针对此 TradeMetaMap 设置谓词以获取键。一个你有 key 使用 getAsync 从 tradeMap 获取完整的贸易对象。 要保留缓存,您需要具有高清存储和 HotRestartStore 的 Hazelcast EnterpriseHD
关于caching - 需要通过多键查找持久保存在内存缓存中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57257229/