neo4j 圖數據庫安裝及介紹
一、neo4j圖數據庫介紹
圖數據庫,顧名思義就是利用了“圖的數據結構來作為數據存儲邏輯體現的一種數據庫”,所以要想學好圖數據庫當然需要了解一些關於圖數據結構的算法!同樣的作為圖數據結構中很多常用的算法在圖數據庫中是默認提供支持的,對數據進行查詢、計算的操作,比如常見的最短路徑算法
、pagerank算法
等等這些算法,都是圖數據結構中常見的算法!當然了neo4j
作為一個圖數據庫當然也會提供這些算法的實現,方便使用者對數據進行操作!
那么圖數據結構具體又包含些什么特點?
首先圖數據結構,最重要的就是,邊(Edge)
、頂點(Node)
、方向(Direction)
三個最基本的元素,數據主要是掛載在頂點
和邊
上,那么邊
和方向
主要用來表示頂點和頂點之間的關系網
這樣將我們需要分析的數據建模成為一個網狀的模型,也就是所謂的圖
,在某些場景中邊
也會包含一些權重
值,用於表示頂點
和頂點
之間數據關系的重要性!
下面就簡單來進行模擬一個圖的數據結構,徒手來畫一個,更加直觀
如上圖就是非常的一個簡單的圖結構,這里面包含着電影、觀眾、導演、作家,非常的直觀,當然目前的這個圖是非常簡單的圖,這種關系通過傳統的關系型數據庫
同樣是可以進行描述的,但是關系型數據庫
在處理關系網的時候處理能力是相對弱的,而且比起圖數據庫
來說會顯得麻煩復雜同時效率低下;比如我在在非常大的一個圖中需要尋找節點之間最短路徑
,其實這種場景是非常常見的,比如QQ共同好友
這些功能就是利用了你好友列表中的關系網,同時它能夠給你推送你的其他好友中包含的好友,而且這種好友基本上你都是認識的,這就是典型的通過關系網
進行分析得出的結果,具體的分析當然看業務,而且運用的場景也會非常多!
上面這些基本上就算是基本的介紹,具體的使用場景和一些細節后面會專門在寫相關的點的文章再來回顧!
那么說了這么多,發現我們的真實數據
實際上是可以在頂點上
和邊
上的,那么邊
上的數據當然是要和頂點之間建立某種關系
或聯系
的數據,上面的模型其實只是簡單的數據模型,那么復雜的數據模型當中,人
的屬性是非常多的,電影
的屬性也同樣是非常多的,那么這些定點
和邊
自然也就要承載更多的數據,所以頂點
和邊
都后掛載屬性,這樣建立出來的數據模型就會更加完整,比如人
他有電話、家庭地址、工作等等,電影同樣也會有很多屬性,這樣的話,自然而然通過對關系網的分析,其實會得到很多有用的價值,比如給他推薦電影推薦哪里的電影院合適
等等問題!
接下來再來說說關系型數據庫
中會存在唯一鍵
,同樣圖數據庫
中也存在唯一鍵
,頂點
和邊
都存在
根據上面所說的這些信息可以基本分析出來,圖數據庫中的數據模型基本上就是下面內容
Edge:[Id,Object]
Node:[Id,Object]
基本上就是上面的這種模型,一個圖就是由所有的頂點
和所有的邊
構成的,那么現在暫時還不去管圖數據庫
在底層到底是怎么存儲數據的,其實這里可以提一下,其實就是把邊和頂點進行拆分,然后分別存儲,但是具體不同的圖數據庫
實現是不一樣的,上面的Object
代表的就是不斷抽象出來的屬性,所以,一個頂點
和一條邊
實際上是可以存儲很多數據的
上面這些內容基本上就說到這,后面在使用的過程中會有更多的細節,同時會有更加深入的了解,下面就是先把neo4j
環境先弄起來
二、neo4j環境搭建
neo4j
分為社區版
和企業版
,企業版
為收費版本,主要是支持分布式,因為單節點的處理能力是有限的,但是收費非常高,所以在沒有資源的情況下選擇使用社區版本,單機進行處理圖關系,當然對於大規模圖處理還有其他的圖數據庫
或者圖數據引擎
,比如Spark Graphx
、Tian
等等,還有很多,有些大公司內部估計還有自己的內部開發的分布式圖數據庫
,比如螞蟻金服Geabase
、google開源的cayley
等等,這里提到了圖數據庫
和圖數據引擎
,其實兩個東西很相似但是卻又有很明顯的區別,圖數據庫
中會提供一些ACID
的支持,側重點是查詢,當然也能夠分析,並且在應對一些小的數據規模也會非常好用;圖數據引擎
側重點是對關系的分析發現,查詢速度會相對於圖數據庫
沒有那么高的實時性,並且也一般不支持ACID
的操作
下面就進行搭建neo4j
環境搭建,使用的是社區版所有就只在單機上進行安裝
安裝環境准備
centos7
、neo4j-community-3.4.12-unix.tar.gz
、jdk8
neo4j下載地址
在安裝之前需要將jdk安裝完成
,安裝jdk就不寫了
$ tar -zxvf neo4j-community-3.4.12-unix.tar.gz
配置啟動機器ip,我這里就配置成為我虛擬機的ip
配置文件conf/neo4j.conf
dbms.connectors.default_listen_address=192.168.56.22
上面安裝完成之后可以關閉防火牆或者開放7474
、7687
兩個端口
關閉防火牆
$ systemctl disable firewalld
$ systemctl stop firewalld
開啟neo4j服務
$ ./bin/neo4j start #開啟
$ ./bin/neo4j restart #重啟
$ ./bin/neo4j stop #關閉
啟動之后訪問http://192.168.56.22:7474/

默認用戶名和密碼都為neo4j
輸入之后,重新設置密碼,neo4j就安裝完成了,就能夠進行使用了!后面再來說如何使用吧!單機版的安裝非常簡單的!