在我们的项目中,我们已经有一个嵌入式内存中的键值存储对象,并且非常有用,因为它允许我们为其制作索引并根据其查询存储。因此,如果我们收集了“学生”的集合,并且在Student.Group和Student.Sex上有一个复合索引,那么我们可以找到来自“ ABC”小组的所有男学生。删除等等。

现在,我们必须采用我们的服务来在云中工作,以便将有多个服务器,处理用户请求,并且它们具有共享状态,该状态存储在此键值索引存储中。我们试图为我们的需求采用模因,这几乎是理想的 - 它是快速,简单且久经考验的解决方案,但没有索引,因此我们无法使用搜索临时数据。

还有其他方法可以像模因一样,但是有索引?

谢谢你。

有帮助吗?

解决方案

尝试 榛子, ,这是一个内存数据网格,可在服务器之间分配数据。就像您在问题中所描述的那样,您可以拥有索引。

用法非常简单。只需添加Hazelcast.jar并开始编码即可。它既可以嵌入又遥远。

这是索引和查询用法

添加索引

IMap<Integer, Student> myDistributedMap = Hazelcast.getMap("students")
myDistributedMap.addIndex("group", false);
myDistributedMap.addIndex("sex", false);

在IMDG中存储

myDistributedMap.put(student.id, student)

;

询问

Collection<Student> result = myDistributedMap.values(new SqlPredicate("sex=male AND group=ABC"));

最后,它在云中正常工作。例如:EC2

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top