Neo4j在内存db中

时间:2017-07-02 01:36:56

标签: spring-boot neo4j spring-data-neo4j network-analysis

我看到Neo4j可以作为Impermanent DB运行单元测试porpouses,我不确定这是否符合我的需要。我的数据以通常的方式存储在neo4j中(持久)但是,从我的数据开始,我想让每个用户开始一个"实验会话":用户添加/删除节点和关系,但不是永久的方式,只是试验数据(在该会话之后,编辑应该丢失)。编辑不应该被保存,并且显然它们不应该对其他人可见。最好的方法是什么?

2 个答案:

答案 0 :(得分:1)

使用非永久性数据库应该可行。你会

  • 需要将数据导入每个新数据库

  • spring-data-neo4j无法连接到多个数据库(在当前版本中),您需要启动应用程序的多个实例,例如:在一个tomcat容器中

  • 当您的应用程序停止(或崩溃)时,您显然会丢失数据

或者您可能只使用一个数据库,基础数据是公共的(=每个人都可见),然后对于所有新节点/关系,您可以添加所有者属性。

查询数据时,您将检查该属性是公共用户还是当前用户。

在会话结束时,您只需删除与给定所有者的所有节点和关系。

如果您还想编辑现有数据,那么它会变得更复杂,您可以创建节点/关系的副本并以某种方式处理它,或者如果它不是太大,则复制整个数据集。

答案 1 :(得分:0)

您可以从neo4j基础图像构建一个泊坞窗图像(或构建您自己的图像)并将graph.db复制到其中。

然后,您可以让每个用户从所述图像启动一个泊坞容器。

如果这不能回答您的问题,则需要更多信息。