1. 程式人生 > >Neo4j 第一篇:在Windows環境中安裝Neo4j

Neo4j 第一篇:在Windows環境中安裝Neo4j

圖形資料庫(Graph Database)是NoSQL資料庫家族中特殊的存在,用於儲存豐富的關係資料,Neo4j 是目前最流行的圖形資料庫,支援完整的事務,在屬性圖中,圖是由頂點(Vertex),邊(Edge)和屬性(Property)組成的,頂點和邊都可以設定屬性,頂點也稱作節點,邊也稱作關係,每個節點和關係都可以由一個或多個屬性。Neo4j建立的圖是用頂點和邊構建一個有向圖,其查詢語言cypher已經成為事實上的標準。

關係型資料庫只對單個Join操作進行優化查詢,而多重Join操作查詢的效能顯著下降。圖形資料庫適合查詢關係資料,由於圖形遍歷的區域性性,不管圖形中由多少節點和關係,根據遍歷規則,Neo4j只訪問與遍歷相關的節點,不受到總資料集大小的影響,從而保持期待的效能;相應地,遍歷的節點越多,遍歷速度越慢,但是變慢是線性的,這使得圖形資料庫不適合做海量資料統計分析。對與存在大量豐富關係的資料,遍歷的效能不受圖形資料量大小的影響,這使得Neo4j成為解決圖形問題的理想資料庫。

我的Neo4j系列的文章收錄在:Neo4j

一,下載和安裝Neo4j

1,安裝Java JDK

Neo4j是基於Java的圖形資料庫,執行Neo4j需要啟動JVM程序,因此必須安裝JAVA SE的JDK。從Oracle官方網站下載 Java SE JDK,當前的版本是JDK8。

2,下載Neo4j安裝檔案

從Neo4j官網下載最新版本Neo4j 3.2 社群(Community)版本 “neo4j-community-3.2.0-windows。zip”,解壓到主目錄,“D:\Program Files\neo4j-community-3.2.”。

Neo4j應用程式有如下主要的目錄結構:

  • bin目錄:用於儲存Neo4j的可執行程式;
  • conf目錄:用於控制Neo4j啟動的配置檔案;
  • data目錄:用於儲存核心資料庫檔案;
  • plugins目錄:用於儲存Neo4j的外掛;

3,建立系統環境變數

建立主目錄環境變數NEO4J_HOME,並把主目錄設定為變數值。

二,Neo4j的配置

配置文件儲存在conf目錄下,Neo4j通過配置檔案neo4j.conf控制伺服器的工作。預設情況下,不需要進行任意配置,就可以啟動伺服器。

1,核心資料檔案的位置

例如,核心資料檔案儲存的位置,預設是在data/graph.db目錄中,要改變預設的儲存目錄,可以更新配置選項:

# The name of the database to mount
#dbms.active_database
=graph.db # Paths of directories in the installation. #dbms.directories.data=data

2,安全驗證,預設是啟用的

# Whether requests to Neo4j are authenticated.
# To disable authentication, uncomment this line
#dbms.security.auth_enabled=false

3,配置JAVA 堆記憶體的大小

# Java Heap Size: by default the Java heap size is dynamically calculated based on available system resources.
# Uncomment these lines to set specific initial and maximum heap size.
#dbms.memory.heap.initial_size=512m
#dbms.memory.heap.max_size=512m

三,網路連線配置

1,Neo4j支援三種網路協議(Protocol)

Neo4j支援三種網路協議(Protocol),分別是Bolt,HTTP和HTTPS,預設的聯結器配置有三種,為了使用這三個埠,需要在Windows防火牆中建立Inbound Rules,允許通過埠7687,7474和7473訪問本機。

2,聯結器的可選屬性

listen_address:設定Neo4j監聽的連結,由兩部分組成:IP地址和埠號(Port)組成,格式是:<ip-address>:<port-number>

3,設定預設的監聽地址

設定預設的網路監聽的IP地址,該預設地址用於設定三個網路協議(Bolt,HTTP和HTTPs)的監聽地址,即設定網路協議的屬性:listen_address地址。在預設情況下,Neo4j只允許本地主機(localhost)訪問,要想通過網路遠端訪問Neo4j資料庫,需要修改監聽地址為 0.0.0.0,這樣設定之後,就能允許遠端主機的訪問。

# With default configuration Neo4j only accepts local connections.
# To accept non-local connections, uncomment this line:
dbms.connectors.default_listen_address=0.0.0.0

4,分別設定各個網路協議的監聽地址和埠

HTTP連結器預設的埠號是7474,Bolt連結器預設的埠號是7687,必須在Windows 防火牆中允許遠端主機訪問這些埠號。

複製程式碼
# Bolt connector
dbms.connector.bolt.enabled=true
#dbms.connector.bolt.tls_level=OPTIONAL
#dbms.connector.bolt.listen_address=0.0.0.0:7687

# HTTP Connector. There must be exactly one HTTP connector.
dbms.connector.http.enabled=true
#dbms.connector.http.listen_address=0.0.0.0:7474

# HTTPS Connector. There can be zero or one HTTPS connectors.
#dbms.connector.https.enabled=true
#dbms.connector.https.listen_address=0.0.0.0:7473
複製程式碼

啟動Neo4j程式

1,通過控制檯啟動Neo4j程式

點選組合鍵:Windows+R,輸入cmd,啟動DOS命令列視窗,切換到主目錄,以管理員身份執行命令:

neo4j.bat console

如果看到以下訊息,說明neo4j已經開始執行:

2,把Neo4j安裝為服務(Windows Services)

安裝和解除安裝服務:

bin\neo4j install-service
bin\neo4j uninstall-service

啟動服務,停止服務,重啟服務和查詢服務的狀態:

bin\neo4j start
bin\neo4j stop
bin\neo4j restart
bin\neo4j status

五,開啟Neo4j整合的瀏覽器

1,Neo4j瀏覽器

Neo4j伺服器具有一個整合的瀏覽器,在一個執行的伺服器例項上訪問 “http://localhost:7474/”,開啟瀏覽器,顯示啟動頁面

預設的host是bolt://localhost:7687,預設的使用者是neo4j,其預設的密碼是:neo4j,第一次成功登陸到Neo4j伺服器之後,需要重置密碼。

訪問Graph Database需要輸入身份驗證,Host是Bolt協議標識的主機。

2,在Neo4j瀏覽器中建立節點和關係

示例,編寫Cypher命令,建立兩個節點和兩個關係:

CREATE (n:Person { name: 'Andres', title: 'Developer' }) return n;
CREATE (n:Person { name: 'Vic', title: 'Developer' }) return n;
match(n:Person{name:"Vic"}),(m:Person{name:"Andres"}) create (n)-[r:Friend]->(m) return r;
match(n:Person{name:"Vic"}),(m:Person{name:"Andres"}) create (n)<-[r:Friend]-(m) return r;

在$ 命令列中,編寫Cypher指令碼程式碼,點選Play按鈕,點選建立第一個節點,

在第一個節點建立之後,在Graph模式下,能夠看到建立的圖形,繼續編寫Cypher指令碼,建立其他節點和關係

在建立完兩個節點和關係之後,檢視資料庫中的圖形:

後續,我會繼續分享我學習Neo4j圖形資料庫、Cypher指令碼和相應的驅動程式的筆記,敬請期待。

推薦書籍:《Neo4j實戰》,原著是《Neo4j in Action》

官方手冊:

參考文件: