java - 具有多个值的最快可能的键->值磁盘存储

标签 java persistence nosql berkeley-db

我正在寻找一种有效的方法来存储许多键->值对 保存在磁盘上,最好有一些缓存。

所需的功能是添加到值(连接) 对于给定的键或让模型成为键->值列表, 两种选择都可以。值部分通常是二进制文档。

在这种情况下,我不会过多地使用集群、冗余等。

在语言方面,我们使用的是 java,并且我们在经典数据库(Oracle、MySQL 等)方面经验丰富。

我看到了几个明显的场景,想就什么问题征求意见 就每秒存储(和检索)而言是最快的:

1) 通过标准插入将数据存储在经典的数据库表中。

2) 自己动手使用文件系统树传播到许多文件, 每个键一个或多个。

3) 使用一些众所周知的元组存储。一些明显的候选人是: 3a) Berkeley db java版 3b) 像 cassandra 和类似的现代 NoSQL 解决方案

就我个人而言,我喜欢 Berkely DB JE 来完成我的任务。

总结一下我的问题:

  • 鉴于上述情况,伯克利似乎是一个明智的选择吗?

  • 对于某些操作,我期望什么样的速度,比如 更新(插入,为键添加新值)和 检索给定的 key ?

最佳答案

你也可以试试Chronicle MapJetBrains Xodus它们都是 Java 可嵌入键值存储 much faster than Berkeley DB JE (如果你真的在寻找速度)。 Chronicle Map 提供了一个易于使用的 java.util.Map 接口(interface)。

关于java - 具有多个值的最快可能的键->值磁盘存储,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5477695/

相关文章:

java - 实体不通过 TomEE 上的 Spring(CrudRepository) 持久化

database - 隐藏在 Cassandra 中的按列数据

database - 是否存在可用于所有 JSON 解析器和数据库的安全 JSON 子集

java - ListView 正在检查我的 RadioButtons 而没有被触及

java - 使用 Beam Java SDK 在 Google Dataflow 上安装 apt-get 依赖项

java - 我如何让我的 Java 扫描仪从该文件中读取这些字符串?

mysql - 我需要 GROUP BY、LIMIT、ORDER BY、SUM 等。在动态创建的一组数据上,每次都会有不同的列

java - 使用 JAX-RS 将 JSON 查询参数转换为对象

java - 使用 JPA 时出现“java.lang.NoSuchFieldError”

将 ManyToOne/OneToOne 关系添加到实体时抛出 javax.persistence.RollbackException