陳韶健 著
Neo4j是一個(gè)獨(dú)立、高性能的NoSQL圖數(shù)據(jù)庫(kù),從總體來(lái)看,Neo4j就是由無(wú)數(shù)相互關(guān)聯(lián)的節(jié)點(diǎn)所組成的圖形,它能很好且形象地表現(xiàn)出現(xiàn)世界中相互聯(lián)系的事物。
《Neo4j全棧開(kāi)發(fā)》不僅全面系統(tǒng)地介紹了怎樣以簡(jiǎn)單易用的方式來(lái)使用Neo4j,還詳細(xì)講解了構(gòu)建可擴(kuò)展、高可用的Neo4j分布式架構(gòu)的實(shí)操細(xì)節(jié),最后使用SpringBoot開(kāi)發(fā)框架,結(jié)合具體的應(yīng)用實(shí)例,詳細(xì)闡述了使用Neo4j進(jìn)行前后端設(shè)計(jì)的詳細(xì)過(guò)程和方法,從此讓Neo4j提供全天候、無(wú)間斷的高可靠服務(wù)。
《Neo4j全棧開(kāi)發(fā)》全面、系統(tǒng)地介紹了Neo4j這個(gè)獨(dú)特而又高性能的NoSQL圖數(shù)據(jù)庫(kù),從使用Neo4j進(jìn)行程序開(kāi)發(fā),到Neo4j的管理和配置等層面全方位地闡釋了Neo4j的整個(gè)生態(tài)體系。
《Neo4j全棧開(kāi)發(fā)》不僅著重介紹了怎樣以簡(jiǎn)單易用的方式來(lái)使用Neo4j,更難能可貴的是,《Neo4j全棧開(kāi)發(fā)》還分享了使用分布式Neo4j構(gòu)建高可用的讀/寫(xiě)分離負(fù)載均衡配置的實(shí)際操作過(guò)程和實(shí)現(xiàn)細(xì)節(jié)。
通過(guò)對(duì)《Neo4j全棧開(kāi)發(fā)》的學(xué)習(xí),讀者將系統(tǒng)地掌握Neo4j的知識(shí),并很快將其用于項(xiàng)目開(kāi)發(fā)之中,為自己的應(yīng)用提升訪問(wèn)性能,解決燃眉之急。
陳韶健,具有15年以上的IT從業(yè)經(jīng)驗(yàn)的資深專家。在編輯語(yǔ)言使用上,精通.Net和Java兩大體系,尤其對(duì)Spring和SpringBoot有深入研究,并著有《深入實(shí)踐SpringBoot》一書(shū),于2016年11月在機(jī)械工業(yè)出版社出版。在數(shù)據(jù)庫(kù)方面,熟悉SQLServer,Oracle,MySQL等傳統(tǒng)關(guān)系型數(shù)據(jù)庫(kù),以及Redis,MongoDB,Neo4j等NoSQL數(shù)據(jù)庫(kù),并對(duì)Neo4j有更多的愛(ài)好和深入地研究。另外,在系統(tǒng)設(shè)計(jì)、服務(wù)器架構(gòu)設(shè)計(jì)、數(shù)據(jù)安全和性能優(yōu)化等方面都有豐富的實(shí)踐和工作經(jīng)驗(yàn)。
第1章 Neo4j概述 1
1.1 Neo4j數(shù)據(jù)的特點(diǎn) 2
1.2 Neo4j數(shù)據(jù)的表現(xiàn)形式 2
1.3 Neo4j的優(yōu)勢(shì) 5
1.3.1 查詢的高性能 5
1.3.2 設(shè)計(jì)的靈活性 6
1.3.3 開(kāi)發(fā)的敏捷性 6
1.3.4 與其他數(shù)據(jù)庫(kù)的比較 6
1.3.5 綜合表現(xiàn) 7
1.4 哪些領(lǐng)域更適合使用Neo4j 8
1.4.1 社區(qū)網(wǎng)絡(luò) 8
1.4.2 推薦引擎 9
1.4.3 交通運(yùn)輸 9
1.4.4 物流管理 9
1.4.5 主數(shù)據(jù)管理 10
1.4.6 訪問(wèn)控制 10
1.4.7 欺詐檢測(cè) 10
1.5 哪些領(lǐng)域不適合使用Neo4j 10
1.6 哪些企業(yè)在使用Neo4j 11
1.6.1 阿迪達(dá)斯的購(gòu)物網(wǎng)站 12
1.6.2 沃爾瑪?shù)膬?nèi)部管理系統(tǒng) 12
1.6.3 eBay的電子商務(wù) 13
1.7 豐富的學(xué)習(xí)資源 13
1.7.1 精選的GraphGists 13
1.7.2 GraphGists門(mén)戶 15
1.8 小結(jié) 16
第2章 Neo4j API應(yīng)用 18
2.1 創(chuàng)建項(xiàng)目工程 18
2.1.1 項(xiàng)目工程配置 19
2.1.2 引用Neo4j開(kāi)發(fā)包 19
2.2 使用Neo4j API 20
2.2.1 使用嵌入式數(shù)據(jù)庫(kù) 20
2.2.2 創(chuàng)建節(jié)點(diǎn)和關(guān)系 21
2.2.3 查詢及更新 22
2.2.4 刪除關(guān)系和節(jié)點(diǎn) 23
2.3 使用標(biāo)簽 25
2.4 使用索引 26
2.4.1 手動(dòng)索引 26
2.4.2 模式索引 27
2.4.3 模式約束 28
2.5 圖的遍歷 31
2.5.1 廣度優(yōu)先遍歷 32
2.5.2 深度優(yōu)先遍歷 32
2.5.3 遍歷的路徑 34
2.6 使用Cypher查詢語(yǔ)言 37
2.7 連接Neo4j服務(wù)器 40
2.8 關(guān)于事務(wù) 42
2.8.1 Neo4j支持完整的事務(wù)管理特性 42
2.8.2 交互周期 43
2.8.3 隔離級(jí)別 44
2.8.4 關(guān)于死鎖 44
2.9 其他開(kāi)發(fā)語(yǔ)言實(shí)例 44
2.9.1 Node.js訪問(wèn)Neo4j 45
2.9.2 Python訪問(wèn)Neo4j 46
2.10 小結(jié) 47
第3章 Neo4j的安裝及使用 48
3.1 安裝要求及推薦 48
3.2 安裝Neo4j服務(wù)器 49
3.2.1 下載Neo4j 49
3.2.2 在Linux操作系統(tǒng)中安裝Neo4j 50
3.2.3 在Windows操作系統(tǒng)中安裝Neo4j 51
3.3 Neo4j基本配置 52
3.4 Neo4j配置優(yōu)化 53
3.4.1 頁(yè)面高速緩存 53
3.4.2 堆大小 54
3.4.3 垃圾收集器 54
3.5 使用Neo4j的Web控制臺(tái) 55
3.5.1 使用命令行輸入框 56
3.5.2 數(shù)據(jù)庫(kù)管理信息 57
3.5.3 使用收藏夾 59
3.5.4 使用幫助手冊(cè) 63
3.5.5 使用瀏覽器同步功能 65
3.5.6 使用瀏覽器設(shè)置 67
3.5.7 關(guān)于Neo4j 68
3.6 小結(jié) 69
第4章 Cypher查詢語(yǔ)言簡(jiǎn)介 71
4.1 Cypher語(yǔ)法基礎(chǔ) 71
4.1.1 變量定義 72
4.1.2 可用運(yùn)算符 72
4.2 Cypher讀/寫(xiě)查詢結(jié)構(gòu) 73
4.2.1 用CREATE創(chuàng)建節(jié)點(diǎn) 74
4.2.2 用CREATE創(chuàng)建關(guān)系 74
4.2.3 用MERGE創(chuàng)建節(jié)點(diǎn) 75
4.2.4 用MERGE創(chuàng)建關(guān)系 76
4.2.5 用SET更新數(shù)據(jù) 76
4.2.6 用DELETE刪除數(shù)據(jù) 77
4.2.7 用REMOVE移除數(shù)據(jù) 78
4.2.8 使用循環(huán)FOREACH 79
4.3 使用索引 79
4.3.1 創(chuàng)建和使用索引 80
4.3.2 刪除索引 81
4.4 使用約束 81
4.4.1 創(chuàng)建約束 81
4.4.2 刪除約束 81
4.5 使用標(biāo)簽 82
4.6 Cypher只讀查詢結(jié)構(gòu) 83
4.6.1 條件過(guò)濾WHERE 83
4.6.2 聯(lián)合查詢UNION 84
4.6.3 使用鏈接WITH 84
4.6.4 返回結(jié)果RETURN 85
4.7 使用CASE子句 86
4.8 遍歷的路徑 86
4.8.1 最短路徑 87
4.8.2 所有最短路徑 88
4.9 使用函數(shù) 90
4.10 使用CALL調(diào)用存儲(chǔ)過(guò)程 92
4.11 查詢語(yǔ)句性能分析 93
4.12 Cypher的使用范圍 95
4.12.1 在neo4j-shell中使用Cypher查詢語(yǔ)言 96
4.12.2 在Rest API中使用Cypher查詢語(yǔ)言 98
4.13 小結(jié) 101
第5章 使用SDN建模和設(shè)計(jì)存儲(chǔ)庫(kù)接口 103
5.1 SDN簡(jiǎn)介 103
5.1.1 SDN的特點(diǎn) 103
5.1.2 SDN存儲(chǔ)庫(kù)接口 104
5.2 數(shù)據(jù)模型設(shè)計(jì) 105
5.2.1 用戶訪問(wèn)控制數(shù)據(jù)模型 105
5.2.2 購(gòu)物網(wǎng)站數(shù)據(jù)模型 106
5.3 數(shù)據(jù)建模的誤區(qū) 108
5.4 Neo4j的數(shù)據(jù)類(lèi)型 109
5.5 在項(xiàng)目中使用SDN 110
5.5.1 在項(xiàng)目工程中引用SDN依賴 110
5.5.2 建模中可用的OGM注解 111
5.5.3 日期類(lèi)型轉(zhuǎn)換實(shí)例 112
5.6 使用SDN建模 113
5.6.1 節(jié)點(diǎn)建模 113
5.6.2 關(guān)系建模 116
5.7 使用SDN設(shè)計(jì)存儲(chǔ)庫(kù)接口 118
5.7.1 創(chuàng)建存儲(chǔ)庫(kù)接口 118
5.7.2 在標(biāo)準(zhǔn)方法中使用路徑 120
5.7.3 自定義聲明方法 120
5.7.4 使用底層方法 122
5.8 SDN配置 124
5.8.1 配置域?qū)ο蠛痛鎯?chǔ)庫(kù)接口 125
5.8.2 使用SDN驅(qū)動(dòng)連接數(shù)據(jù)庫(kù) 125
5.9 小結(jié) 127
第6章 應(yīng)用實(shí)例一:NBA季后賽預(yù)測(cè) 128
6.1 應(yīng)用背景分析 129
6.1.1 勝負(fù)預(yù)測(cè)的依據(jù) 129
6.1.2 NBA季后賽數(shù)據(jù)模型 129
6.2 實(shí)體對(duì)象建模 131
6.2.1 節(jié)點(diǎn)實(shí)體建模 131
6.2.2 關(guān)系實(shí)體建模 134
6.3 實(shí)體持久化和查詢?cè)O(shè)計(jì) 135
6.3.1 東部球隊(duì)存儲(chǔ)庫(kù)接口 136
6.3.2 西部球隊(duì)存儲(chǔ)庫(kù)接口 137
6.3.3 比賽存儲(chǔ)庫(kù)接口 138
6.3.4 贏得關(guān)系存儲(chǔ)庫(kù)接口 139
6.4 預(yù)測(cè)算法設(shè)計(jì) 140
6.4.1 NBA季后賽的年度歷史查詢 141
6.4.2 一支球隊(duì)的比賽歷史查詢 141
6.4.3 勝負(fù)比率排名算法 142
6.4.4 輸贏預(yù)測(cè)算法 143
6.5 SDN配置及數(shù)據(jù)庫(kù)連接 144
6.5.1 數(shù)據(jù)庫(kù)連接配置 145
6.5.2 SDN配置 145
6.6 數(shù)據(jù)庫(kù)設(shè)計(jì)驗(yàn)證 146
6.7 創(chuàng)建Web應(yīng)用 149
6.8 Web前后端設(shè)計(jì) 150
6.8.1 Web后端設(shè)計(jì) 150
6.8.2 Web前端設(shè)計(jì) 154
6.9 比賽結(jié)果編輯設(shè)計(jì) 168
6.9.1 比賽結(jié)果編輯的訪問(wèn)控制設(shè)計(jì) 168
6.9.2 比賽結(jié)果的錄入界面設(shè)計(jì) 171
6.10 勝率排名的Web設(shè)計(jì) 176
6.10.1 勝率排名的訪問(wèn)控制設(shè)計(jì) 176
6.10.2 勝率排名的界面設(shè)計(jì) 177
6.11 輸贏預(yù)測(cè)的Web設(shè)計(jì) 180
6.11.1 輸贏預(yù)測(cè)的訪問(wèn)控制設(shè)計(jì) 181
6.11.2 輸贏預(yù)測(cè)的界面設(shè)計(jì) 182
6.12 使用GraphGists的測(cè)試數(shù)據(jù) 187
6.13 實(shí)例工程使用 188
6.13.1 工程配置 189
6.13.2 運(yùn)行應(yīng)用 189
6.14 小結(jié) 191
第7章 應(yīng)用實(shí)例二:電影社區(qū)推薦引擎 192
7.1 應(yīng)用背景分析 192
7.1.1 發(fā)現(xiàn)商業(yè)價(jià)值 193
7.1.2 建立數(shù)據(jù)模型 193
7.2 數(shù)據(jù)對(duì)象建模 194
7.2.1 節(jié)點(diǎn)建模 194
7.2.2 關(guān)系建模 199
7.3 存儲(chǔ)庫(kù)接口設(shè)計(jì) 201
7.3.1 影院存儲(chǔ)庫(kù)接口設(shè)計(jì) 201
7.3.2 電影存儲(chǔ)庫(kù)接口設(shè)計(jì) 202
7.3.3 節(jié)目存儲(chǔ)庫(kù)接口設(shè)計(jì) 203
7.3.4 觀眾存儲(chǔ)庫(kù)接口設(shè)計(jì) 204
7.4 Cypher查詢算法設(shè)計(jì) 204
7.4.1 電影排名查詢算法設(shè)計(jì) 205
7.4.2 電影推薦查詢算法設(shè)計(jì) 205
7.5 數(shù)據(jù)訪問(wèn)服務(wù)類(lèi)設(shè)計(jì) 208
7.5.1 分頁(yè)查詢公共服務(wù)類(lèi) 209
7.5.2 數(shù)據(jù)訪問(wèn)服務(wù)類(lèi) 210
7.6 數(shù)據(jù)庫(kù)連接配置 212
7.6.1 SDN驅(qū)動(dòng)的依賴引用 212
7.6.2 連接數(shù)據(jù)庫(kù)配置 213
7.6.3 SDN配置 213
7.7 數(shù)據(jù)庫(kù)設(shè)計(jì)驗(yàn)證 214
7.8 Web設(shè)計(jì) 217
7.8.1 訪問(wèn)控制設(shè)計(jì) 218
7.8.2 界面設(shè)計(jì) 222
7.9 電影評(píng)分的Web設(shè)計(jì) 242
7.9.1 電影評(píng)分訪問(wèn)控制設(shè)計(jì) 242
7.9.2 電影評(píng)分界面設(shè)計(jì) 244
7.10 電影排名的Web設(shè)計(jì) 247
7.10.1 電影排名訪問(wèn)控制設(shè)計(jì) 247
7.10.2 電影排名界面設(shè)計(jì) 248
7.11 電影推薦的Web設(shè)計(jì) 252
7.11.1 推薦電影給觀眾的Web設(shè)計(jì) 252
7.11.2 推薦電影給朋友的Web設(shè)計(jì) 257
7.12 管理后臺(tái)的導(dǎo)航欄設(shè)計(jì) 258
7.13 實(shí)例工程使用 260
7.13.1 運(yùn)行配置 260
7.13.2 應(yīng)用發(fā)布 261
7.14 小結(jié) 262
第8章 Neo4j企業(yè)版安裝及使用 263
8.1 分布式服務(wù)器安裝 264
8.1.1 在不同機(jī)器上安裝分布式服務(wù)器 264
8.1.2 在同一臺(tái)機(jī)器上安裝分布式服務(wù)器 272
8.2 使用Haproxy實(shí)施負(fù)載均衡服務(wù) 275
8.2.1 普通負(fù)載均衡配置 275
8.2.2 Haproxy服務(wù)監(jiān)控 279
8.3 實(shí)現(xiàn)讀/寫(xiě)分離的負(fù)載均衡服務(wù) 280
8.4 小結(jié) 284
第9章 Neo4j的數(shù)據(jù)安全及備份 286
9.1 數(shù)據(jù)的備份與恢復(fù) 286
9.1.1 數(shù)據(jù)備份 286
9.1.2 清理備份日志 288
9.1.3 數(shù)據(jù)恢復(fù) 289
9.2 數(shù)據(jù)庫(kù)安全保障 290
9.3 數(shù)據(jù)的導(dǎo)入與導(dǎo)出 290
9.3.1 使用neo4j-import導(dǎo)入數(shù)據(jù) 291
9.3.2 使用Cypher導(dǎo)入數(shù)據(jù) 294
9.3.3 導(dǎo)出數(shù)據(jù) 295
9.4 故障恢復(fù)與事務(wù)日志 297
9.5 數(shù)據(jù)庫(kù)升級(jí) 297
9.5.1 從2.x 升級(jí)到3.0.3 297
9.5.2 在3.x之間升級(jí) 299
9.6 小結(jié) 300
結(jié)束語(yǔ) 301
附錄A 參考資料 302
《Neo4j全棧開(kāi)發(fā)》:
當(dāng)一個(gè)對(duì)象使用SDN建模之后,就可以使用SDN的存儲(chǔ)庫(kù)接口實(shí)現(xiàn)持久化和進(jìn)行一些數(shù)據(jù)訪問(wèn)設(shè)計(jì)。通過(guò)簡(jiǎn)單繼承SDN的存儲(chǔ)庫(kù)接口,就可以執(zhí)行標(biāo)準(zhǔn)的CURD操作,同時(shí)還可以按接口的規(guī)范標(biāo)準(zhǔn)聲明自定義方法,實(shí)現(xiàn)像使用查詢語(yǔ)言一樣的查詢?cè)O(shè)計(jì)。而所有這些方法將由SDN智能實(shí)現(xiàn),并不需要我們編寫(xiě)實(shí)現(xiàn)的代碼。
另一個(gè)更具靈活性的設(shè)計(jì)是:在接口中通過(guò)注解使用自定義的Cypher查詢語(yǔ)句。當(dāng)然這也是由OGM的映射機(jī)制實(shí)現(xiàn)的,并且通過(guò)OGM優(yōu)化處理使查詢具有很高的效率,即提供了很好的性能表現(xiàn)。通過(guò)Cypher查詢語(yǔ)言,我們可以設(shè)計(jì)出復(fù)雜的查詢,以支持各種各樣的業(yè)務(wù)需求。
SDN還提供了隱式事務(wù)管理機(jī)制,即對(duì)數(shù)據(jù)庫(kù)的每一項(xiàng)操作,包括查找數(shù)據(jù)、保存數(shù)據(jù)等,都可以使用隱式事務(wù)管理。通過(guò)使用隱式事務(wù)管理,每一個(gè)事務(wù)都將是自動(dòng)提交的,這將不再需要我們編寫(xiě)任何事務(wù)管理的代碼。當(dāng)然,通過(guò)使用OGM的一些簡(jiǎn)單注解方法,我們也可以非常靈活地按業(yè)務(wù)需求來(lái)顯式地管理事務(wù)。
……
在高速發(fā)展的互聯(lián)網(wǎng)應(yīng)用中,業(yè)務(wù)需求的頻繁變更和數(shù)據(jù)的快速增長(zhǎng)都要求數(shù)據(jù)庫(kù)必須具有很強(qiáng)的適應(yīng)能力。Neo4j圖數(shù)據(jù)庫(kù)正是一個(gè)能夠適應(yīng)這種業(yè)務(wù)需求不斷變化和大規(guī)模數(shù)據(jù)增長(zhǎng)而產(chǎn)生的數(shù)據(jù)庫(kù),它不但具有很強(qiáng)的適應(yīng)能力,而且能夠自始至終保持高效的查詢性能。
現(xiàn)實(shí)世界中的一切事物都處在聯(lián)系之中,如人際關(guān)系、電腦網(wǎng)絡(luò)、地理數(shù)據(jù)、分子結(jié)構(gòu)模型等,無(wú)一不處在紛繁復(fù)雜的聯(lián)系之中。這種聯(lián)系形成了一種互相關(guān)聯(lián)的數(shù)據(jù),聯(lián)系才是數(shù)據(jù)的本質(zhì)所在。傳統(tǒng)的關(guān)系型數(shù)據(jù)庫(kù)并不能很好地表現(xiàn)數(shù)據(jù)的聯(lián)系,而一些NoSQL(NotOnlySQL,非關(guān)系型數(shù)據(jù)庫(kù))數(shù)據(jù)庫(kù)也不能表現(xiàn)數(shù)據(jù)之間的聯(lián)系。同樣是NoSQL的Neo4j圖數(shù)據(jù)庫(kù)是以圖的結(jié)構(gòu)形式來(lái)存儲(chǔ)數(shù)據(jù)的,它所存儲(chǔ)的就是聯(lián)系的數(shù)據(jù),是關(guān)聯(lián)數(shù)據(jù)本身。
關(guān)聯(lián)數(shù)據(jù)中的聯(lián)系本來(lái)就很復(fù)雜,若要在關(guān)系型數(shù)據(jù)庫(kù)中使用結(jié)構(gòu)化形式來(lái)表現(xiàn)這種聯(lián)系,則一般不能直接表示,處理起來(lái)既煩瑣又費(fèi)事,并且隨著數(shù)據(jù)的不斷增長(zhǎng),其訪問(wèn)性能將日趨下降。無(wú)數(shù)的開(kāi)發(fā)人員和數(shù)據(jù)庫(kù)管理人員都或多或少地使用過(guò)關(guān)系型數(shù)據(jù)庫(kù),在其應(yīng)用的規(guī)?;M(jìn)展過(guò)程中,對(duì)于數(shù)據(jù)庫(kù)的性能優(yōu)化往往捉襟見(jiàn)肘、陷入窘境。Neo4j沒(méi)有模式結(jié)構(gòu)的定義,也不需要這些定義,它使用非結(jié)構(gòu)化的方式來(lái)存儲(chǔ)關(guān)聯(lián)數(shù)據(jù),所以能夠直接表現(xiàn)數(shù)據(jù)的關(guān)聯(lián)特性。
Neo4j不管是與關(guān)系型數(shù)據(jù)庫(kù)相比,還是與其他NoSQL數(shù)據(jù)庫(kù)相比,都具有很多前所未有的優(yōu)勢(shì),主要表現(xiàn)在以下幾個(gè)方面。
1.優(yōu)越的性能表現(xiàn)
Neo4j具有永久高效的讀取和寫(xiě)入能力,這種能力與數(shù)據(jù)庫(kù)的大小無(wú)關(guān),不管是初始創(chuàng)建的數(shù)據(jù)庫(kù),還是用了很長(zhǎng)時(shí)間、積累了大量數(shù)據(jù)的數(shù)據(jù)庫(kù),Neo4j始終能保持閃電般的讀/寫(xiě)速度。
2.設(shè)計(jì)的靈活性
因?yàn)镹eo4j沒(méi)有模式結(jié)構(gòu)定義的約束,并且由于圖結(jié)構(gòu)的自然伸展特性,都給Neo4j提供了無(wú)限廣闊的靈活設(shè)計(jì)空間,因?yàn)闊o(wú)論是擴(kuò)展設(shè)計(jì),還是增加數(shù)據(jù),都不會(huì)影響到原來(lái)數(shù)據(jù)的正常使用。
3.迭代的敏捷性
正是由于Neo4j的靈活設(shè)計(jì)特性及其圖結(jié)構(gòu)數(shù)據(jù)的可伸縮性等特點(diǎn),使其能追上業(yè)務(wù)需求變化發(fā)展的腳步,并且能適用于頻繁迭代的敏捷開(kāi)發(fā)方法。
4.安全可靠的特性
Neo4j不僅支持完整的事務(wù)管理特性,而且提供了實(shí)時(shí)在線備份功能,以及應(yīng)對(duì)災(zāi)難事故進(jìn)行日志恢復(fù)的方法,所有這些都充分說(shuō)明了Neo4j是一個(gè)安全可靠的數(shù)據(jù)庫(kù)。
5.簡(jiǎn)單易用的特性
Neo4j在使用上非常簡(jiǎn)單,不管是使用Java開(kāi)發(fā)語(yǔ)言,還是使用其他開(kāi)發(fā)語(yǔ)言,如Python、Ruby、PHP、.NET、Node.js等,都能夠非常方便地訪問(wèn)Neo4j。特別是SpringDataNeo4j開(kāi)發(fā)包,更是提供了一整套非常簡(jiǎn)單易用的Neo4j數(shù)據(jù)庫(kù)使用方法。
6.豐富的學(xué)習(xí)資源
Neo4j的社區(qū)版滋生了一個(gè)非?;钴S的社區(qū),在這個(gè)社區(qū)中,諸多開(kāi)發(fā)者提供了非常豐富的使用Neo4j的案例——GraphGists,這是學(xué)習(xí)使用Neo4j的極好資源。通過(guò)對(duì)這些GraphGists的學(xué)習(xí)和交流,不僅能拓展你的思路,更能讓你的開(kāi)發(fā)工作變得更加簡(jiǎn)單和容易,而且還能幫助你快速構(gòu)建應(yīng)用的商業(yè)模型。
7.大企業(yè)的考驗(yàn)
Neo4j擁有廣大而又有實(shí)力的用戶群體,并且經(jīng)過(guò)幾年時(shí)間的運(yùn)行實(shí)踐,充分驗(yàn)證了它的穩(wěn)定性和健壯性。如思科、沃爾瑪、阿迪達(dá)斯等公司,都在使用Neo4j的過(guò)程中挖掘到了圖數(shù)據(jù)庫(kù)的巨大威力,并且創(chuàng)造出了蓬勃發(fā)展的商業(yè)模型。
綜上所述,使用如此優(yōu)秀的數(shù)據(jù)庫(kù),不僅可以提升一個(gè)應(yīng)用的性能,而且可以適應(yīng)大規(guī)模的數(shù)據(jù)增長(zhǎng),同時(shí)還能減輕開(kāi)發(fā)人員和數(shù)據(jù)庫(kù)管理人員的工作負(fù)擔(dān),給你和你的企業(yè)以及你的用戶帶來(lái)前所未有的優(yōu)越體驗(yàn)。
讀者對(duì)象
本書(shū)適合所有開(kāi)發(fā)人員,特別是SpringBoot開(kāi)發(fā)者閱讀,同時(shí)適合數(shù)據(jù)庫(kù)管理人員和系統(tǒng)設(shè)計(jì)人員學(xué)習(xí)使用,并可作為系統(tǒng)策劃者進(jìn)行數(shù)據(jù)庫(kù)選型的參考資料。
實(shí)例代碼下載
本書(shū)各章的實(shí)例代碼下載在各個(gè)章節(jié)中都有明確說(shuō)明,同時(shí)也可以通過(guò)以下網(wǎng)址選擇不同項(xiàng)目進(jìn)行下載或檢出:
https://github.com/mr-csj?tab=repositories
更多建議: