一:neo4j優勢
作為非關系型數據庫中的圖數據庫,neo4j的使用較為廣泛,neo4j有如下優勢
1:其底層結構由點(Vertex),邊(Edge)構成,點和邊上都可以放屬性。可以通過某一個已知的點,根據指定關系(邊)迅速找到關聯的多層數據。(當我們要用關系型數據庫,如mysql做這一操作時,若關聯維度較多,三層,四層乃至更多,或者表數據較多時,Join操作的性能會很低)
2:非結構化數據存儲方式,可以根據實際場景即時設計新的實體和關系,對原來的結構無影響
3:支持事物
4:數據備份,數據恢復導入安全
5:安裝操作簡單,其查詢cypher語句設計易懂
二:neo4j安裝
(注:neo4j依賴jdk1.8版本及以上,若沒有對應環境請先安裝)
下載neo4j安裝包
下載地址:https://neo4j.com/download-center/#releases
下載安裝包,neo4j-community-3.5.0-unix.tar.gz,上傳至linux目錄下
解壓,tar -zxvf neo4j-community-3.5.0-unix.tar.gz
安裝包解壓后如下
進入對應的根目錄下
- bin目錄:neo4j的基本執行程序,如應用的開啟與關閉,cypher語句的操作等等
- conf目錄:neo4j的配置文件
- data目錄:數據的管理
- import目錄:文件導入目錄。如將該目錄下的對應csv文件導入neo4j數據庫
進入conf目錄修改配置文件
vim neo4j.conf
找到#dbms.connectors.default_listen_address=0.0.0.0,將注釋去掉(該操作為允許http接口遠程訪問neo4j服務器)
進入bin目錄,啟動服務
./neo4j start
./neo4j status 查看neo4j允許狀態
該狀態下則為neo4j正常運行中
打開瀏覽器,訪問 ip:7474端口
默認用戶名密碼 neo4j/neo4j,登陸后需要修改密碼,否則不能遠程訪問
(linux無瀏覽器初始化密碼方法,Bin目錄下 ./cypher-shell登錄 neo4j/neo4j,CALL dbms.changePassword('新密碼');
三:基礎點邊創建
1:創建節點
語法:CREATE (<node-name>:<label-name>)
其中<node-name>為該語句中點的別名,可隨意取,<label-name>為標簽類型,表示該節點為emp類型,一個節點可以有多個標簽。標簽后為該節點的屬性,可根據實際做映射
create (n:emp{id:"e001",name:"張三"})
create (n:dept{id:"d001",name:"技術部"})
以上兩個語句,分別創建了 emp “張三” 和 dept "技術部"
2:創建關系
語法:
CREATE (<node1-name>:<label1-name>)-[(<relationship-name>:<relationship-label-name>)]->(<node2-name>:<label2-name>)
關系基於節點,先有節點才能創建對應關系,執行語句
match (n:emp{id:"e001"}),(m:dept{id:"d001"}) create (n)-[r:serving{job:"leader",date:"2008-10-10"}]->(m)
以上語句,先match(查詢匹配)到 id為 “e001”的 emp類型節點和 id為 “d001”的dept節點,再創建兩節點之間的關系類型serving,該關系有屬性 job和date
3:查詢
match (n:emp{id:"e001"}),(m:dept{id:"d001"}) return n,m
以上語句,先match(查詢匹配)到 id為 “e001”的 emp類型節點和 id為 “d001”的dept節點,再將查詢節點展示出來(neo4j官方界面中,只要查出了節點,節點間的關系也會自動展示出來)