使用Neo4j在一台服务器上创建多个数据库

时间:2014-09-04 07:13:39

标签: database neo4j

如何使用neo4j在一台服务器上创建多个数据库? 我有多个客户端,我想将所有客户端信息分成不同的数据库,以避免数据泄漏。

3 个答案:

答案 0 :(得分:36)

您需要在conf/neo4j.propertiesconf/neo4j-server.properties中安装多个具有不同端口配置的Neo4j。

或者,您可以使用某些虚拟化或容器工具(如http // docker.io)来实现更复杂的方法。

答案 1 :(得分:9)

或为客户端的每个节点添加特殊label,例如:ClientName。 或者为每个客户端数据库创建一个根节点,并始终在第一个节点开始查询。

在neo4j db中,你可以有单独的子图。如果你对你的代码编程很好,就没有理由发生这样的泄漏。

答案 2 :(得分:4)

正如@ stefan-armbruster所说,使用多个Neo4j docker容器实例来运行多个数据库可能会很好

可能在docker compose文件下面应该可以帮助你这样做

version: '2'
services:
  neo4j:
    image: neo4j:latest
    network_mode: host
    restart: always
    environment:
      - NEO4J_AUTH: neo4j/neo4j
    cap_add:
      - SYS_RESOURCE
    ports:
      - "7474:7474"
      - "7687:7687"
    volumes:
      - $HOME/neo4j/data:/data

将上述文件保存到docker-compose.yml后,运行命令

docker-compose up 

如果你想在后台运行

docker-compose up -d 

现在您应该能够以http://localhost:7474访问数据库,如果您使用的是docker-machine,则必须使用docker-machine IP地址来访问数据库

通过维护多个包含不同端口的docker-compose文件,您可以维护多个数据库,这不仅适用于neo4j,您可以为任何类型的数据库(Mongo,Redis,RabbitMQ等)执行此操作。 p>

用于指定不同的docker compose文件,请尝试以下命令

docker-compose -f <your docker compose file name>