前言
關系,指事物之間相互作用、相互影響的狀態。
數據之間的關系也是如此,數據之間關系的存儲在RDS就已經開始。從數據庫支持的外鍵,到手動建立的關系表,人們采取了許多方法,只為了解決查詢復雜、緩慢等問題。
在NoSQL興起的今天,圖數據庫進入了我們的視野,關系模型靜態、剛性、不靈活的本質在網絡狀的存儲結構里已然不復存在。現在,讓我們以初學者的身份,初探圖數據庫的奧妙。
圖數據庫以圖形結構(即網絡狀)的形式存儲數據,他以“節點”為基本的存儲單位,“節點”之間則以“關系”作為關聯,“節點”與“關系”中可以包含許多“屬性”,正如RDS里的“行”、“列”,圖數據庫以圖形結構進行存儲。
Neo4j
Neo4j是一個世界領先的圖數據庫,具有本機圖形存儲與處理功能,具有展示方便、支持面廣、性能優異等優點。
包含有靈活的架構、完整的事務管理、集群以提升高可用與性能、強大的Cypher(CQL)查詢語言、可視化Web界面 Neo4j Browser、驅動支持時下流行的語言與框架、方便的數據導入、成熟的雲端服務等特性。
開始使用
Neo4j的安裝各系統皆不相同,官方下載地址也有安裝方式。
地址如下:https://neo4j.com/download/
社區版的下載地址如下:https://neo4j.com/download-center/#community
(PS:支持多系統、多種安裝方式,大多可以直接安裝,改個配置就能用了)
默認的端口:
http:7474
https:7473
bolt:7687
默認的賬戶名與密碼:
賬號:neo4j
密碼:neo4j
Neo4j瀏覽器
Neo4j Browser即Neo4j瀏覽器頁面是Neo4j自帶的可視化界面,在啟動完Neo4j后直接訪問 http://你的域名:7474/browser/ 即可訪問,首次訪問需要設置密碼。
在設置完賬號密碼之后,即進入了主頁面,主頁面主要分為三個部分,即左邊的菜單欄,右下邊的數據展示部分,右上方的CQL錄入部分。
其中菜單欄分為:
數據庫信息:展示數據庫已有的數據信息
收藏的CQL:展示已收藏的CQL,也包含了CQL的語句樣例
文件資料:包含了基礎教程、幫助、相關資源等信息
系統設置:主要為頁面設置、結果展示設置、圖形可視化設置
數據庫信息菜單欄則分為:
節點列表:展示所有節點
關系列表:展示所有關系
字段列表:展示了所有節點的所有字段
連接信息:包含了當前的連接信息,以及一些操作語句
數據庫信息包含了數據庫版本信息以及系統信息查詢語句
結果展示區域則分為:
(圖形模式下,將鼠標移至節點或關系上即可查看詳情,單擊即可進行隱藏鎖定等操作)
若使用表格的方式查看結果:
若使用文本的方式查看結果:
SpringBootData
Neo4j支持多種語言,無論使用Java,C#,Python,Ruby,JavaScript,PHP,R還是Go,Neo4j社區都構建了驅動程序,使得與Neo4j的HTTP API的交互變得容易。同時支持流行的框架,例如Spring Data,Django ORM,Laravel,JDBC等。這里,我們只說說SpringBootData。
SpringBootData使用Neo4j所需要的依賴如下:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-neo4j</artifactId>
<version>version</version>
</dependency>
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-neo4j</artifactId>
<version>version</version>
</dependency>
基礎的配置文件如下:
spring:
data:
neo4j:
uri: bolt://www.clevercoder.cn/:7687
username: neo4j
password: neo4j
更多配置:
spring:
data:
neo4j:
connection:
pool:
size:#連接池大小
livenes:
check:
timeout:#see Java driver doc
encryption:
level:#加密級別
trust:
strategy:#信任策略,默認TRUST_ALL_CERTIFICATES(信任所有證書)
certificate:
file:#若填寫了TRUST_CUSTOM_CA_SIGNED_CERTIFICATES
#或TRUST_SYSTEM_CA_SIGNED_CERTIFICATES需要的文件路徑
verify:
connection: #see Java driver doc
在使用SpringBootData的情況下,配置完成即可直接使用了,后續將介紹如何方便快捷的在SpringBootData里使用Neo4j。
結語
neo4j作為時下流行的圖數據庫,java對其的支持也非常完善,你可以很方便的使用java原生的GraphDatabaseService類來操作,也能通過SpringData的Repository來進行操作。更加方便的是Neo4j自帶了圖形化管理界面,哪怕是沒有代碼基礎的人也可以很方便的使用其進行作圖,例如知乎就有答主使用Neo4j制作明星關系圖。我們也可以很方便的在頁面上看到代碼操作的結果。
后續我們將分別講解Neo4j各種使用方式,敬請關注!