设置Neo4j内存数据库实例

3
我希望完全在内存中运行neo4j 2.3 作为独立的可执行文件,并提供一个可配置的端口用于测试套件。我的项目测试套件是用另一种语言(不是Java!)编写的,并将通过HTTP API与neo进行通信。
到目前为止,这是我发现的:
  • 标准构建的conf/目录中的文件似乎没有配置此功能的方法。
  • 有一个类CommunityServerBuilder,一个公共的build方法返回一个预配置为内存中的TestCommunityNeoServer服务器。
如何使用CommunityServerBuilder创建和运行内存中的neo4j数据库?或者在conf/中是否有一个配置属性可以实现相同的功能?

你有没有查看过以下链接,它讲述了如何在单元测试中使用ImpermanentDatabase - Madhusudana Reddy Sunnapu
@MadhusudanaReddySunnapu 我没有进行单元测试。我的测试套件不是用Java编写的。 - soundly_typed
@MadhusudanaReddySunnapu,最新版本的neo4j-kernel没有TestGraphDatabaseFactory。 - vkrishna17
3个回答

4
你可以设置一个临时内存文件系统(有时称为“RAM磁盘”),并将neo4j服务器指向该文件系统(或子目录)作为DB位置。
在Linux上,您可以选择多种设置RAM磁盘的方式,包括ramfstmpfs这里是一篇文章
在OSX上,有一个很好的脚本用于挂载RAM磁盘。在Finder中,RAM磁盘显示为设备(可能带有“untitled”的名称)在设备列表中。
在Windows上,有许多商业软件可用于创建RAM磁盘,但这篇文章展示了如何使用免费工具。

1
假设您有一个指向RAM磁盘的路径,您如何指定neo4j使用该子目录? - soundly_typed
1
请参阅http://neo4j.com/docs/stable/server-configuration.html#_important_server_configuration_parameters。信息在开头部分。基本上,在您的`conf/neo4j-server.properties`文件中适当设置`org.neo4j.server.database.location`值即可。 - cybersam

0

不要走自定义CE路线,考虑使用基于Java的版本如何?

  • 下载并解压Java应用程序。
  • 使用此工具在单个目录树中创建您的标准数据库配置。

当您需要测试时,

  • 创建一个RAM磁盘,
  • 将标准数据库配置复制到RAM磁盘上
  • 更改neo4j-server.properties配置文件中的端口

org.neo4j.server.webserver.port=7474

  • 启动服务器
  • 进行测试
  • 停止服务器/删除RAM磁盘

0

谢谢您的回答。我并不想使用进程内服务器;我提到我的测试套件将使用HTTP API与内存中的neo4j进行通信。这有帮助吗?或者我是错过了什么? - soundly_typed

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