为高级查询选择基于 Java 的键值存储

Posted

技术标签:

【中文标题】为高级查询选择基于 Java 的键值存储【英文标题】:Choice of Java-based Key-value store for advanced queries 【发布时间】:2014-04-29 11:53:59 【问题描述】:

我正在寻找一个合适的分布式键值存储来满足以下要求: - 用 Ja​​va 编写, - 完全分布(在工作人员之间平衡分配值,复制,工作人员上的快速本地键值存储), - 允许我对“一组键”运行查询,并让我修改个别工作人员的代码以进一步处理(过滤)本地检索到的键并返回它自己的答案。

我认为 Voldemort 项目很有前途,但似乎它只严格支持单个键值查询,并且修改会非常复杂。请问有人给点建议吗?

【问题讨论】:

键/值存储的定义通常是通过省略任何高级查询的能力来购买更好的性能。您真正想要的是一个合适的数据库。 【参考方案1】:

这不是一个真正的“答案”,因为这是一个广泛的话题,但我们使用 Apache Cassandra 并且相当 满意。而且我喜欢 Apache 的支持(许可、认可等)。

【讨论】:

【参考方案2】:

看来我找到了解决方案 - Infinispan 是一个分布式 K-V 存储,具有“分布式执行框架”,允许在相关工作人员上执行代码(并合并结果):http://infinispan.org/docs/6.0.x/user_guide/user_guide.html#_distributed_execution_framework

谢谢大家

【讨论】:

以上是关于为高级查询选择基于 Java 的键值存储的主要内容,如果未能解决你的问题,请参考以下文章

mysql高级教程-----逻辑架构查询流程索引

2-Redis

高级功能使用Web存储

mysql 查询结果把一个字段的值赋值给另一个字段的键值

Java高级面试题及答案

Java面试题之高级篇研读