java - 用于 Java 的单文件、持久、排序的键值存储(替代 Berkeley DB)

标签 java berkeley-db key-value-store

<分区>

Berkeley DB (JE) 许 cocoa 能会成为交易 killer 。我有一个面向一小部分客户的 Java 应用程序,但由于它是桌面应用程序,我的价格无法支持单个实例许可。

是否有推荐的 Java 替代 Berkeley DB?商业或其他(良好的键值存储实现可能变得非常重要,我更愿意将维护推迟到其他地方)。我需要的不仅仅是一个哈希存储,因为我需要遍历后续的 key 子集,而基本的哈希存储将进行 O(m*n) 搜索,我希望该存储在台式机上约为 50-60GiB。您可以推荐将其后备存储保存在单个文件中的任何人的附加好处?

最佳答案

你绝对应该试试 JDBM2 , 它做你想做的事:

  • 磁盘支持的 HashMaps/TreeMaps 因此您可以遍历键。
  • Apache 2 许可证

此外:

  • 速度快,占用空间小
  • 事务性
  • 独立 jar 只有 145 KB。
  • 使用简单
  • 很好地扩展到 1e9 条记录
  • 使用 Java 序列化,没有 ORM 映射

更新

该项目现已发展为 MapDB http://www.mapdb.org

关于java - 用于 Java 的单文件、持久、排序的键值存储(替代 Berkeley DB),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5032581/

相关文章:

java - 如何使用 java 的 String.replaceAll(String, String) 方法将 "<br><br><br><br><br><br>"之类的字符串转换为 "<br>"?

java - 如何让 selenium(Chrome) webdriver 等待,直到网络中没有待处理的请求? (使用JAVA)

c - 执行字符串操作时出现一些错误

database - BDB,如何按指定顺序获取主键?

xcode - (Xcode) 启用 iCloud 时权限被拒绝

MySQL 到 Redis - 导入和建模

java - MediaStore 外部内容 URI 正在从 SDCARD 中获取数据

berkeley-db - Berkeley DB 是开源的吗?我在哪里可以找到它的源代码?

implementation - 在 LevelDB 中,是否所有的键都加载到内存中?

java - 如何用java正确解析HTML?