java - 在运行时将数据加载到 hazelcast
问题描述
我在我的应用程序中使用 hazelcast IMDG。
我正在一步一步地做三个不同的步骤:
步骤1
当我启动应用程序时,我将表数据加载到 hazelcast IMap 中。
加载后:-
第2步
我正在使用 Hazelcast SqlPredicate 过滤一些数据。
String sql="this.age <= 30
SqlPredicate predicateForObjs = new SqlPredicate(sql);
Collection<HazelcastJsonValue> filterResult = dataEntity.values(predicateForObjs);
步骤:- 3
我再次将过滤后的结果加载到另一个地图中以进行排序操作。
IMap<Integer, HazelcastJsonValue> sortMap= hazelCast.getMap("data");
int i=0;
for(HazelcastJsonValue hjv : filterResult ){
sortMap.put(i,hjv);
i++;
}
Comparator<Entry<Integer, HazelcastJsonValue>> descendingComparator = new DescendingIdComparator();
PagingPredicate pagingPredicate = Predicates.pagingPredicate(descendingComparator, sortMap.size());
Collection<HazelcastJsonValue> values = map.values(pagingPredicate);
为了进行排序操作,我在运行时加载过滤结果。
我看过很多文章说在运行时将数据加载到缓存中不好,还会降低性能。
任何人都可以建议差异方法。?
我使用正确的方法吗?