前言
好多技術都是因爲項目使用,才與之結緣;同樣的Neo4j也是如此;
網上大多都是基礎入門教程,對於在實際項目中遇到的坑沒有一個很好的解釋;所以纔有了此係列的誕生;
本系列博文,除了基礎的neo4j教程外,也會涉及到很多實際開發中遇到的問題;
還有關於Neo4j架構與應用;
關於Neo4j系列
本系列博文將從Neo4j概述、CQL語言和Spring Data Neo4j、Neo4j架構與應用方面來學習Neo4j。 每一部分都有簡單易懂的例子,熟讀三國的朋友會感覺很有意思,同時博主的項目中遇到很多問題,都會一一把坑兒填上,博文地址如下:
- Neo4j系列(一)----初始Neo4j
- Neo4j系列(二)----Neo4j Cypher
- Neo4j系列(三)----Neo4j和Spring Data Neo4j
- Neo4j系列(四)----Neo4j架構與應用
參考
《Neo4j 實戰》是學習Neo4j挺不錯的書籍,還有以下地址:
接下來,就讓我們進入Neo4j的世界!
一、Neo4j概述
1.1 名詞解釋
圖(Graph)
圖是最普遍的自然結構,是由頂點(Vertex)、邊(Edge)和屬性(Property)組成的,頂點也稱作節點,邊也稱作關係,頂點和邊可以設置屬性,每個節點和關係都可以由一個或多個屬性。
圖形數據庫(Graph Database)
也稱爲圖形數據庫管理系統(GDBMS),區別於關係型數據庫(Oracle、Mysql),用於存儲豐富的關係數據。圖形數據庫將結構化數據存儲在圖上而不是表中,是一個嵌入式的、基於磁盤的、具備完全事務特性的Java持久化引擎。
Neo4j:Neo4j 是目前最流行的圖形數據庫,是一個開源的、高性能的Nosql圖形數據庫。其特點如下:
- 支持簡單的查詢語言Neo4j CQL
- 遵循屬性圖數據模型
- 支持Apache Lucence索引
- 支持UNIQUE約束
- 包含一個用於執行CQL命令的UI:Neo4j數據瀏覽器
- 支持完整的ACID(原子性,一致性,隔離性和持久性)規則
- 採用原生圖形庫與本地GPE(圖形處理引擎)
- 支持查詢的數據導出到JSON和XLS格式
- 提供了REST API,可以被任何編程語言(如Java,Spring,Scala等)訪問
- 提供了可以通過任何UI MVC框架(如Node JS)訪問的Java腳本
- 支持兩種Java API:Cypher API和Native Java API來開發Java應用程序
1.2 Neo4j 模型規則
如圖所示,三國中曹操、劉備、孫權C位出道,三個大BOSS都有字,互爲敵人關係,都想幹掉對方的那種;每個BOSS也都有自己的將軍和軍師;這裏面就隱藏着Neo4j的模型規則:
Neo4j的主要構建塊是:節點、關係、屬性
Neo4j將數據作爲節點和關係存儲,節點和關係都可以包含屬性,屬性是鍵值對的形式;關係連接節點,具有方向性:單向和雙向。每個關係包含開始節點和結束節點。
每一個節點可以有一個或者多個文字描述,稱爲節點標籤,具有同樣標籤的節點用一種專用的方式存儲;
在Neo4j中,關係是有方向性的。如果我們嘗試創建沒有方向的關係,那麼Neo4j會拋出一個錯誤消息,“關係應該是方向性的”。
Neo4j是一個無架構數據庫,在開始添加數據時,無需定義表和關係,也不需要任何額外的RRBMS數據庫來存儲Neo4j數據。使用查詢語言Neo4j CQL就能夠很好的操作數據(在下一節 我們詳細瞭解CQL):
二、Neo4j安裝
Neo4j是基於Java的圖形數據庫,運行Neo4j需要啓動JVM,因此必須先安裝JAVA SE的JDK,部署環境變量;
Neo4j官網地址:選擇自己系統版本, 當然,國外的網絡,下載速度,你懂得。
linux版本安裝包下載:
neo4j-community-3.3.6-unix.tar
windows 安裝包下載:
neo4j-community-3.3.6-windows.zip
2.1 windows版本安裝
1.將下載好的windows zip解壓縮,解壓後的文件夾內容如圖:
2.配置環境變量:
3.在dos命令行中,進入neo4j安裝目錄下的bin目錄,執行命令neo4j.bat console
,出現如圖所示信息,neo4j啓動成功:
4.打開瀏覽器,輸入:localhost:7474,出現以下界面,默認賬戶和密碼(neo4j:neo4j),接下來就能操作neo4j啦!
2.2 linux版本安裝
同樣的安裝之前,確認JVM安裝完畢:
[root@linux-text3 ~]# java -version
java version "1.7.0_09-icedtea"
OpenJDK Runtime Environment (rhel-2.3.4.1.el6_3-x86_64)
OpenJDK 64-Bit Server VM (build 23.2-b09, mixed mode)
將安裝包解壓
tar -zxvf neo4j-community-3.3.6-unix.tar.gz
修改當前用戶環境變量:vim /root/.bash_profile
,在文末添加如下代碼
export PATH=/software/neo4j/neo4j-community-3.3.6/bin:$PATH
執行source /root/.bash_profile
使配置生效
vim neo4j.conf 配置文件,讓它可以從遠程訪問控制檯
啓動neo4j數據庫,如圖所示
瀏覽器連接測試,安裝成功。