【问题标题】:Can neo4j be run in memory only?neo4j 只能在内存中运行吗?
【发布时间】:2014-02-20 15:19:40
【问题描述】:

是否可以仅在内存中运行 Neo4j 而无需任何持久性数据库/文件存储?

数据来自多个 xml/json 文件,我们必须使用 ConcurrentHashmap 将它们加载到 jvm 堆内存中。由于数据对象具有依赖关系(父子,子可以链接回父),我们想要维护一个对象图。在这种情况下有什么方法可以使用 Neo4J 吗?或者你能推荐任何可以支持维护这种对象图的框架。

谢谢。

【问题讨论】:

    标签: spring-data-neo4j


    【解决方案1】:

    Neo4j has 是一个用于单元测试的 ImpermanentDataBase,但它在内存中运行。

    http://docs.neo4j.org/chunked/stable/tutorials-java-unit-testing.html

    【讨论】:

    • 您是否知道在生产中使用此内存数据库的任何缺点?在某些情况下,我想使用 Neo4j 的图形遍历功能,但我不需要将数据库持久化到文件系统。我想知道在这种情况下使用 ImnpermanentDataBase 是否是个好主意。
    • 使用无常数据库,如果 neo4j 崩溃或被杀死,您将丢失所有数据。因此,重启 neo4j 后,数据库将为空。这对于生产环境来说通常是不可接受的。
    • 我知道。我只想使用 Neo4J API 查询并加密一些我在内存中的图形结构。如果我不关心持久性,那么在生产系统中这样做是个好主意吗? (例如,内存占用和性能方面?)
    【解决方案2】:

    现在,neo4j 对嵌入式数据库具有一流的支持,这与仅在测试期间使用的数据库不同。更多详情请访问https://neo4j.com/docs/java-reference/current/tutorials-java-embedded/include-neo4j/

    【讨论】:

    • 我看到嵌入式数据库需要提供路径,路径将用于写入,如果应用程序没有所需的权限怎么办?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-16
    • 1970-01-01
    • 2014-01-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多