【问题标题】:Help me pick a key/value store帮我选择一个键/值存储
【发布时间】:2011-05-26 20:57:31
【问题描述】:

讨厌让别人为我做研究,但也许有一个善良的灵魂会不自觉地知道答案:

我需要一个具有以下特征的键/值存储:

  1. 分布式
  2. 可以按升序迭代键。
  3. 可以根据部分键(前缀)匹配找到键。
  4. 值可以是最多 1 mb 或 2 mb 的 blob。
  5. 可从 Java 访问。
  6. 通过某种方式设置规则,以便我可以控制密钥在机器之间的分布方式,也就是说,我想要一个规则,让具有公共前缀的密钥保留在一台机器上。
  7. 查询系统以找出哪台机器有密钥的方法。
  8. 对复制和冗余的一些支持。

【问题讨论】:

  • 分布式哈希表。听起来很有趣……
  • 实际上,排序迭代器的要求使得分布式哈希表难以辨认。他们不排序。

标签: java nosql key-value


【解决方案1】:

我有两个答案:

  1. Amazon S3 支持所有这些,但显然它运行在他们的服务器上,而不是您的服务器上。特别是它非常支持前缀查找。
  2. MongoDB 支持所有这些。您可以使用正则表达式或 $where 进行前缀匹配。小心使用索引以获得最佳性能。

【讨论】:

    【解决方案2】:

    我不确定它是否符合您的所有要求,但您看过Hazelcast's distributed maps 吗?自从我查看 Hazelcast 以来已经有一段时间了,所以我不知道是否有一种方法可以知道哪些实例负责给定键,或者一种将键分配给实例的方法,但它确实为整个安全并发操作提供了支持分布式地图和其他好东西。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-09-08
      • 2021-03-09
      • 2022-10-12
      • 1970-01-01
      • 2020-12-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多