6

我正在寻找在我的应用程序中使用的持久键值存储。具体来说:

  1. 它必须可以嵌入到 Java 应用程序中。纯 Java 解决方案将是最好的。
  2. 数据必须保存在磁盘上,内存中的存储不是一种选择。内存占用大小很重要,键值映射的整体大小可能非常大。理想情况下,我希望在存储上实现某种 LRU 缓存。
  3. 键和值都是字符串(不需要支持 Java 对象序列化等)。
  4. 并发读/写很重要。

在这种情况下,最好的选择是什么?

4

4 回答 4

5

OrientDBSO 信息页面)似乎符合要求。

文档有时会有些缺失,但我相信它符合您列出的标准。

于 2013-03-04T10:07:38.633 回答
3

我不知道这是否是最好的,但Hazelcast有这些选择。您可以将数据存储在内存中,并在磁盘上进行备份。hazelcast 上有一个例子

于 2013-03-04T09:36:19.943 回答
3

当必须支持大数据时,我们不得不替换普通的 HashMap 时,我使用了Voldemort 。表演真的很棒。

值 = store.get(key)

store.put(键,值)

存储.删除(键)

在下一次尝试键值存储的机会中,我很可能会尝试Redis

于 2013-03-04T09:43:53.990 回答
2

我会使用 SQLite ( SQLite )。它是一个类似于文件存储的关系数据库,允许您存储键值和您可能需要的任何其他内容。它的占用空间非常小,而且速度非常快。

由于所有这些原因,它在 Android 应用程序中非常常用。

于 2013-03-04T09:35:06.553 回答