嵌入式Neo4j是如何工作的?

3

我是新手,对neo4j不熟悉,根据我目前的阅读,似乎有两种与neo4j交互的方式:使用Neo4j REST和Embedded。我有点困惑的是,Embedded选项是否仅提供使用本地Neo4j API来操作数据存储的能力,还是您也可以将Neo4j嵌入并打包到Java应用程序中?如果是这样,我该如何操作?

1个回答

4
据我所知,嵌入式术语是用来将neo4j与您的应用程序集成的。在嵌入式模式下,您的数据库被锁定,只有您的应用程序被授权访问它。只要您的应用程序在运行并访问它,就无法从任何其他地方访问您的数据库。
而在Neo4j Rest或称为Neo4j服务器中,支持通过REST API执行所有数据存储相关操作。在Rest API模式下,您可以使用Neo4j GUI控制台外部处理您的数据库以及应用程序。
就性能而言,我发现嵌入式模式比服务器模式更快。
“嵌入式选项”是否只给了您使用本机Neo4j API来操作数据存储的能力?
您可以使用任一模式(服务器REST API模式或嵌入式模式)来操作数据存储。
关于Java应用程序包,这取决于您的应用程序配置,在嵌入式模式下,通常无需运行外部neo4j服务器。您只需要显式地提及您的db路径以及其他配置(我使用了Spring Data Neo4j)。而在Neo4j Server模式中,您需要运行neo4j服务器。
您也可以查看此 线程

1
您还可以编写使用嵌入式API的服务器扩展。通常现在我们建议使用Cypher跨事务http端点,而不是REST API。 - Michael Hunger
1
好的,既然使用嵌入式选项时数据库被锁定,那么这将如何影响依赖于一些云基础设施(例如Heroku或Google App Engine)的应用程序呢? - Mario Dennis
@MarioDennis 如果你的关注点是云基础设施上的嵌入式neo4j数据库,那么它不应该影响你的应用程序,因为你的应用程序本身将在本地系统上给定的路径上创建嵌入式数据库。通常路径被指定为 /home/build/neo4j/db/graph.db,其中graph.db将由你的应用程序使用neo4j库创建。如果我理解你的意思正确的话。 - Aman Gupta
我不确定Heroku和Google App Engine,但如果你将应用部署到Amazon实例上,那么上面的评论是有道理的 :)。 - Aman Gupta

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接