需要具有多键查找的持久即时内存缓存

时间:2019-07-29 15:42:19

标签: caching redis hazelcast distributed gemfire

我们有一个要求,我们需要搜索具有多个键的键,并正在寻找多个索引。

例如: 贸易数据包含以下参数:

  • 日期
  • 库存
  • 价格
  • 数量
  • 帐户

我们将以“股票”为关键字将每个交易存储为列表。这将使我们能够查询给定股票的所有交易。但是,我们还会有查询,例如帐户中所有交易的列表。我们希望使用相同的缓存来获取此查询,而不是新的缓存。由于等待时间要求非常低,因此需要内存缓存(java)。另外,我们需要一个持久性缓存,以便在重新启动应用程序时重新填充该缓存。

如果有任何好的解决方案,请告诉我,因为持久性缓存的唯一方法似乎是分布式的。

1 个答案:

答案 0 :(得分:0)

一种确保查询更快的方法是创建一个仅具有您要查询的属性的TradeMeta对象,即

  • 日期库存价格数量科目 TradeMeta对象可以存储在带有上述所有键索引的Map中。这可确保榛子广播维护相关的存储桶,以便在内部轻松查找。可以对此TradeMetaMap设置谓词以获取密钥。您拥有一个密钥,使用getAsync从tradeMap获取完整的交易对象。 要保留高速缓存,您将需要具有HD存储和HotRestartStore的Hazelcast EnterpriseHD