【问题标题】:Need persistent im memory cache with multi key lookups需要通过多键查找在内存缓存中持久化
【发布时间】:2019-12-06 23:51:16
【问题描述】:

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

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

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

我们会将每笔交易存储为一个以 Stock 为键的列表。这将使我们能够查询给定股票的所有交易。但是,我们也会有查询,比如一个账户中所有交易的列表。我们希望使用这个相同的缓存来获取这个查询而不是一个新的缓存。要求是内存缓存(java),因为延迟要求非常低。此外,我们需要一个持久缓存,以便在应用程序重新启动时重新填充缓存。

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

【问题讨论】:

  • 你检查过 RediSearch.io 吗?

标签: caching redis hazelcast distributed gemfire


【解决方案1】:

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

  • 日期股票价格数量账户 TradeMeta 对象可以存储在具有上述所有键的索引的 Map 中。这确保了 hazelcast 维护相关的存储桶,以便在内部轻松查找。可以针对此 TradeMetaMap 设置谓词以获取键。一个你有密钥的人使用 getAsync 从 tradeMap 获取完整的交易对象。 要持久化缓存,您需要具有 HD 存储和 HotRestartStore 的 Hazelcast EnterpriseHD

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-22
    • 1970-01-01
    相关资源
    最近更新 更多