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/zh-tw/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

發表回復

登錄後才能評論