java用哪个数据库在内存中存储数据? [关闭]

Posted

技术标签:

【中文标题】java用哪个数据库在内存中存储数据? [关闭]【英文标题】:which database for java to store data in memory? [closed] 【发布时间】:2013-06-15 01:40:36 【问题描述】:

我正在寻找一个可以让我将大部分对象存储在内存中的数据库。基本上我想将除了一些很少使用的数据(更改历史等)之外的所有内容都存储在内存中。

我正在寻找:

Java 的简单 API,最好是非 ORM ACID 不是必需的(嗯,D 是) 对查询的一些支持,但没有什么花哨的

这个想法是对内存中的模型进行操作,将任何改变模型的“命令”存储在数据库中,定期将模型同步到数据库(就像 prevayler 一样)

哪个数据库符合我的需求? (如果没有更简单的方法,我将使用 postgres 或 H2)。

【问题讨论】:

hsqldb? hsqldb 是一个常规的 sql 数据库,不会比 H2/pgsql 提供更多/更简单 Sqlite?你试过了吗? 这是另一个 SQL 数据库 - 我需要使用一些 ORM 或编写大量 SQL 查询。我不想那样。我想说:这里是数据库,这些是我的对象,请确保它们已存储,如果我重新启动应用程序,我可以在将来再次加载它们。是的,我使用了 sqlite、hsqldb、oracle、postgres 等。我更喜欢不同的东西 mongoDB ? cassandra ? 【参考方案1】:

您需要一个对象数据库:http://en.wikipedia.org/wiki/Comparison_of_object_database_management_systems

【讨论】:

【参考方案2】:

您应该使用Terracotta。它通常用于缓存,但它正是您所要求的,除了它的“查询”能力是稀疏的。

更新: 之前的链接是他们的“企业”版,但他们有适合您需求的开源项目Ehcache,他们的企业产品是基于此的。

【讨论】:

它不适用于深层对象层次结构。看起来不太可行,但我会考虑一下 我不确定您在寻找什么,但其他“替代品”可以是 Neo4j,尽管它可能需要太多时间投资和范式改变。

以上是关于java用哪个数据库在内存中存储数据? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

一个Java对象到底占用多大内存

一个Java对象到底占用多大内存

freenas和openfiler存储软件哪个更好?

Juc18_Java内存模型对象头Mark Word实例数据对齐填充谈谈new Object( )占多大内存

c++中数组和对象的数据是存储在栈内存还是堆内存?

Java基本数据类型