Neo4j Docker – 一文详解图数据库在Docker中的部署与应用

图数据库作为一种新兴的数据库类型,其在处理大规模数据时有着比传统关系型数据库更好的效果。由于其应用场景不断增多,加上Docker的流行,将图数据库运行在Docker中有着非常大的实际意义。Neo4j作为一款流行的图数据库,在Docker中也有着很好的应用,并且Neo4j官方也提供了相应的Docker镜像,这使得我们的部署工作更加方便。本文从Neo4j在Docker上的部署入手,详细介绍Neo4j Docker镜像的应用,供大家参考。

一、安装Docker与Docker Compose

在开始我们的Neo4j Docker之旅之前,首先我们需要确保环境中已经安装了Docker和Docker Compose。如果您的电脑中没有安装Docker和Docker Compose,可以参考以下命令安装。以Ubuntu为例:

sudo apt update 
sudo apt install docker.io 
sudo apt install docker-compose

二、Neo4j Docker镜像的获取与部署

获取Neo4j Docker镜像非常简单,只需在终端中输入以下命令:

docker pull neo4j:latest

该命令将从Docker Hub上拉取Neo4j的最新版本。拉取完成后,我们就可以使用docker run命令来启动Neo4j容器了。这里我们使用默认端口7474和7687,并使用neo4j:latest镜像,同时也指定了挂载的目录:

docker run \
  --publish=7474:7474 --publish=7687:7687 \
  --volume=$HOME/neo4j/data:/data \
  --name=neo4j \
  -d \
  neo4j:latest

该命令将启动一个Neo4j容器实例,并向本地的7474和7687端口映射,同时也将数据目录绑定到主机上的$HOME/neo4j/data目录中,容器名为neo4j。

三、Neo4j Docker镜像的常用命令

在我们的应用中,我们经常需要对容器进行一系列的操作。以下是Neo4j Docker镜像中一些常用的操作命令:

1. 启动Neo4j容器:

docker start neo4j

2. 停止Neo4j容器:

docker stop neo4j

3. 删除Neo4j容器:

docker rm neo4j

4. 获取Neo4j容器的日志:

docker logs neo4j

5. 进入Neo4j容器的bash:

docker exec -it neo4j bash

四、在Neo4j Docker中创建数据和导入数据

在我们的应用中,数据的创建和导入也是非常重要的一个环节。这里我们介绍两种方法:通过Neo4j Browser和通过Cypher Shell。

使用Neo4j Browser创建数据和导入数据:

1. 打开Web浏览器,访问:http://localhost:7474
2. 在登录页面输入默认用户名和密码(分别为neo4j和neo4j),登录到Neo4j Browser。
3. 在Neo4j Browser中,我们可以使用CREATE命令来创建节点和关系。
4. 在Neo4j Browser中,我们可以使用LOAD CSV命令来导入CSV文件。

使用Cypher Shell创建数据和导入数据:

1. 进入Neo4j容器的bash:

docker exec -it neo4j bash

2. 创建节点和关系:

cypher-shell -u neo4j -p neo4j "CREATE (n:Person {name: 'Alice'})-[:FRIEND]->(m:Person {name: 'Bob'})"

3. 导入CSV文件:

cypher-shell -u neo4j -p neo4j "LOAD CSV WITH HEADERS FROM 'file:///person.csv' AS line CREATE (:Person {id: line.id, name: line.name})"

五、在Neo4j Docker中使用APOC工具集

APOC工具集是一个第三方开发的Neo4j插件库,包含了几百个Neo4j函数和过程,可以大大简化我们的开发过程。在Neo4j Docker中,我们也可以很容易地使用APOC工具集。

首先,我们需要将APOC工具集下载到本地,并将其复制到Neo4j容器内的plugins目录中:

wget https://github.com/neo4j-contrib/neo4j-apoc-procedures/releases/download/4.3.0.0/apoc-4.3.0.0-all.jar
docker cp apoc-4.3.0.0-all.jar neo4j:/var/lib/neo4j/plugins/

接下来,在Neo4j中启用APOC工具集,在conf/neo4j.conf文件中添加以下内容:

dbms.security.procedures.unrestricted=apoc.*

重新启动Neo4j容器,即可开始使用APOC工具集。以下是一个例子:

MATCH (p:Person {name: 'Alice'})
CALL apoc.path.spanningTree(p, {maxLevel:3, relationshipFilter:'FRIEND', labelFilter: 'Person'}) YIELD path
RETURN path

以上代码使用了APOC工具集中的path.spanningTree函数来查询Alice的三级FRIEND关系树。

六、Neo4j Docker镜像的容器化部署

在实际应用中,我们需要将Neo4j容器化部署。这里我们使用Docker Compose来完成容器化部署。以下是一个示例:

version: '3.8'
services:
  neo4j:
    image: neo4j:latest
    container_name: neo4j
    restart: always
    environment:
      NEO4J_AUTH: neo4j/neo4j
    ports:
      - "7474:7474"
      - "7687:7687"
    volumes:
      - $HOME/neo4j/data:/data

以上代码将在Docker Compose中部署一个Neo4j容器,同时也映射了7474和7687端口,指定了数据目录,容器名为neo4j。

七、小结

本文从Neo4j Docker镜像的获取与部署入手,详细介绍了Neo4j Docker的应用,并介绍了Neo4j Docker的常见命令、数据的创建和导入、APOC工具集的使用和容器化部署。Neo4j Docker的应用为我们提供了一种非常方便的方式来使用和部署图数据库,有助于我们在实际应用中更好地发挥Neo4j的优势。

原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/183783.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝小蓝
上一篇 2024-11-25 05:52
下一篇 2024-11-25 08:50

相关推荐

  • Python 常用数据库有哪些?

    在Python编程中,数据库是不可或缺的一部分。随着互联网应用的不断扩大,处理海量数据已成为一种趋势。Python有许多成熟的数据库管理系统,接下来我们将从多个方面介绍Python…

    编程 2025-04-29
  • openeuler安装数据库方案

    本文将介绍在openeuler操作系统中安装数据库的方案,并提供代码示例。 一、安装MariaDB 下面介绍如何在openeuler中安装MariaDB。 1、更新软件源 sudo…

    编程 2025-04-29
  • 数据库第三范式会有删除插入异常

    如果没有正确设计数据库,第三范式可能导致删除和插入异常。以下是详细解释: 一、什么是第三范式和范式理论? 范式理论是关系数据库中的一个规范化过程。第三范式是范式理论中的一种常见形式…

    编程 2025-04-29
  • leveldb和unqlite:两个高性能的数据库存储引擎

    本文将介绍两款高性能的数据库存储引擎:leveldb和unqlite,并从多个方面对它们进行详细的阐述。 一、leveldb:轻量级的键值存储引擎 1、leveldb概述: lev…

    编程 2025-04-28
  • Python怎么导入数据库

    Python是一种高级编程语言。它具有简单、易读的语法和广泛的库,让它成为一个灵活和强大的工具。Python的数据库连接类型可以多种多样,其中包括MySQL、Oracle、Post…

    编程 2025-04-28
  • Think-ORM数据模型及数据库核心操作

    本文主要介绍Think-ORM数据模型建立和数据库核心操作。 一、模型定义 Think-ORM是一个开源的ORM框架,用于简化在PHP应用中(特别是ThinkPHP)与关系数据库之…

    编程 2025-04-27
  • 如何使用Python将CSV文件导入到数据库

    CSV(Comma Separated Values)是一种可读性高、易于编辑与导入导出的文件格式,常用于存储表格数据。在数据处理过程中,我们有时需要将CSV文件导入到数据库中进行…

    编程 2025-04-27
  • Python批量导入数据库

    本文将介绍Python中如何批量导入数据库。首先,对于数据分析和挖掘领域,数据库中批量导入数据是一个必不可少的过程。这种高效的导入方式可以极大地提高数据挖掘、机器学习等任务的效率。…

    编程 2025-04-27
  • Activiti 6自动部署后不生成数据库act_hi_*的解决方法

    本文将从多个方面详细阐述Activiti 6自动部署后不生成数据库act_hi_*的问题,并提供对应的代码示例。 一、问题分析 在使用Activiti 6部署流程后,我们发现act…

    编程 2025-04-27
  • Python更新数据库数据

    Python更新数据库数据是一个非常实用的功能。在工作中,我们经常需要从外部获取数据,然后将这些数据保存到数据库中,或者对现有数据库中的数据进行更新。Python提供了许多库和框架…

    编程 2025-04-27

发表回复

登录后才能评论