远程键值存储允许索引?
-
30-09-2019 - |
题
在我们的项目中,我们已经有一个嵌入式内存中的键值存储对象,并且非常有用,因为它允许我们为其制作索引并根据其查询存储。因此,如果我们收集了“学生”的集合,并且在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
不隶属于 StackOverflow