【问题标题】:Loading sql table data into hazelcast将sql表数据加载到hazelcast中
【发布时间】:2020-10-19 19:01:31
【问题描述】:

我正在使用 hazelcast IMap 来存储我的应用程序数据。

我正面临一个小问题。

问题说明:-

当我启动 spring-boot 应用程序时,我正在将数据库表数据加载到 hazelcast 中。

例子:-

HazelcastInstance hazelCast = Hazelcast.getOrCreateHazelcastInstance(HazelcastConfig.getConfig());
IMap<Integer, String> mapInstance= hazelCast.getMap("data");

mapInstance.put(1,"value1");
mapInstance.put(2,"value2");
mapInstance.put(3,"value3");
mapInstance.put(4,"value4");

但是当我获取相同的数据时,我得到的顺序不同。

那么有没有办法按插入的顺序获取数据呢?

【问题讨论】:

    标签: java hazelcast


    【解决方案1】:

    IMap 未按排序顺序存储,因为数据内容跨多个进程存储。

    然后可用的选项取决于您需要插入顺序还是键顺序,因为它们可能不一样。你的代码可以做

    mapInstance.put(1,"value1");
    mapInstance.put(2,"value2");
    

    mapInstance.put(2,"value2");
    mapInstance.put(1,"value1");
    

    所以键顺序总是 1 然后 2,但插入顺序会有所不同。

    使用PagingPredicate 将允许您按密钥顺序检索。

    按插入顺序检索会困难得多。 EntryView 可以访问创建时间,但您需要自己对此进行排序。 如果您的数据足够大以至于需要将其存储在多个进程中,那么这可能效果不佳。

    【讨论】:

      猜你喜欢
      • 2021-09-23
      • 1970-01-01
      • 2021-11-11
      • 1970-01-01
      • 2020-05-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多