发表于2024-12-26
Neo4j是一个独立、高性能的NoSQL图数据库,从总体来看,Neo4j就是由无数相互关联的节点所组成的图形,它能很好且形象地表现出现世界中相互联系的事物。
《Neo4j全栈开发》不仅全面系统地介绍了怎样以简单易用的方式来使用Neo4j,还详细讲解了构建可扩展、高可用的Neo4j分布式架构的实操细节,最后使用SpringBoot开发框架,结合具体的应用实例,详细阐述了使用Neo4j进行前后端设计的详细过程和方法,从此让Neo4j提供全天候、无间断的高可靠服务。
《Neo4j全栈开发》全面、系统地介绍了Neo4j这个独特而又高性能的NoSQL图数据库,从使用Neo4j进行程序开发,到Neo4j的管理和配置等层面全方位地阐释了Neo4j的整个生态体系。
《Neo4j全栈开发》不仅着重介绍了怎样以简单易用的方式来使用Neo4j,更难能可贵的是,《Neo4j全栈开发》还分享了使用分布式Neo4j构建高可用的读/写分离负载均衡配置的实际操作过程和实现细节。
通过对《Neo4j全栈开发》的学习,读者将系统地掌握Neo4j的知识,并很快将其用于项目开发之中,为自己的应用提升访问性能,解决燃眉之急。
陈韶健,具有15年以上的IT从业经验的资深专家。在编辑语言使用上,精通.Net和Java两大体系,尤其对Spring和SpringBoot有深入研究,并著有《深入实践SpringBoot》一书,于2016年11月在机械工业出版社出版。在数据库方面,熟悉SQLServer,Oracle,MySQL等传统关系型数据库,以及Redis,MongoDB,Neo4j等NoSQL数据库,并对Neo4j有更多的爱好和深入地研究。另外,在系统设计、服务器架构设计、数据安全和性能优化等方面都有丰富的实践和工作经验。
第1章 Neo4j概述 1
1.1 Neo4j数据的特点 2
1.2 Neo4j数据的表现形式 2
1.3 Neo4j的优势 5
1.3.1 查询的高性能 5
1.3.2 设计的灵活性 6
1.3.3 开发的敏捷性 6
1.3.4 与其他数据库的比较 6
1.3.5 综合表现 7
1.4 哪些领域更适合使用Neo4j 8
1.4.1 社区网络 8
1.4.2 推荐引擎 9
1.4.3 交通运输 9
1.4.4 物流管理 9
1.4.5 主数据管理 10
1.4.6 访问控制 10
1.4.7 欺诈检测 10
1.5 哪些领域不适合使用Neo4j 10
1.6 哪些企业在使用Neo4j 11
1.6.1 阿迪达斯的购物网站 12
1.6.2 沃尔玛的内部管理系统 12
1.6.3 eBay的电子商务 13
1.7 丰富的学习资源 13
1.7.1 精选的GraphGists 13
1.7.2 GraphGists门户 15
1.8 小结 16
第2章 Neo4j API应用 18
2.1 创建项目工程 18
2.1.1 项目工程配置 19
2.1.2 引用Neo4j开发包 19
2.2 使用Neo4j API 20
2.2.1 使用嵌入式数据库 20
2.2.2 创建节点和关系 21
2.2.3 查询及更新 22
2.2.4 删除关系和节点 23
2.3 使用标签 25
2.4 使用索引 26
2.4.1 手动索引 26
2.4.2 模式索引 27
2.4.3 模式约束 28
2.5 图的遍历 31
2.5.1 广度优先遍历 32
2.5.2 深度优先遍历 32
2.5.3 遍历的路径 34
2.6 使用Cypher查询语言 37
2.7 连接Neo4j服务器 40
2.8 关于事务 42
2.8.1 Neo4j支持完整的事务管理特性 42
2.8.2 交互周期 43
2.8.3 隔离级别 44
2.8.4 关于死锁 44
2.9 其他开发语言实例 44
2.9.1 Node.js访问Neo4j 45
2.9.2 Python访问Neo4j 46
2.10 小结 47
第3章 Neo4j的安装及使用 48
3.1 安装要求及推荐 48
3.2 安装Neo4j服务器 49
3.2.1 下载Neo4j 49
3.2.2 在Linux操作系统中安装Neo4j 50
3.2.3 在Windows操作系统中安装Neo4j 51
3.3 Neo4j基本配置 52
3.4 Neo4j配置优化 53
3.4.1 页面高速缓存 53
3.4.2 堆大小 54
3.4.3 垃圾收集器 54
3.5 使用Neo4j的Web控制台 55
3.5.1 使用命令行输入框 56
3.5.2 数据库管理信息 57
3.5.3 使用收藏夹 59
3.5.4 使用帮助手册 63
3.5.5 使用浏览器同步功能 65
3.5.6 使用浏览器设置 67
3.5.7 关于Neo4j 68
3.6 小结 69
第4章 Cypher查询语言简介 71
4.1 Cypher语法基础 71
4.1.1 变量定义 72
4.1.2 可用运算符 72
4.2 Cypher读/写查询结构 73
4.2.1 用CREATE创建节点 74
4.2.2 用CREATE创建关系 74
4.2.3 用MERGE创建节点 75
4.2.4 用MERGE创建关系 76
4.2.5 用SET更新数据 76
4.2.6 用DELETE删除数据 77
4.2.7 用REMOVE移除数据 78
4.2.8 使用循环FOREACH 79
4.3 使用索引 79
4.3.1 创建和使用索引 80
4.3.2 删除索引 81
4.4 使用约束 81
4.4.1 创建约束 81
4.4.2 删除约束 81
4.5 使用标签 82
4.6 Cypher只读查询结构 83
4.6.1 条件过滤WHERE 83
4.6.2 联合查询UNION 84
4.6.3 使用链接WITH 84
4.6.4 返回结果RETURN 85
4.7 使用CASE子句 86
4.8 遍历的路径 86
4.8.1 最短路径 87
4.8.2 所有最短路径 88
4.9 使用函数 90
4.10 使用CALL调用存储过程 92
4.11 查询语句性能分析 93
4.12 Cypher的使用范围 95
4.12.1 在neo4j-shell中使用Cypher查询语言 96
4.12.2 在Rest API中使用Cypher查询语言 98
4.13 小结 101
第5章 使用SDN建模和设计存储库接口 103
5.1 SDN简介 103
5.1.1 SDN的特点 103
5.1.2 SDN存储库接口 104
5.2 数据模型设计 105
5.2.1 用户访问控制数据模型 105
5.2.2 购物网站数据模型 106
5.3 数据建模的误区 108
5.4 Neo4j的数据类型 109
5.5 在项目中使用SDN 110
5.5.1 在项目工程中引用SDN依赖 110
5.5.2 建模中可用的OGM注解 111
5.5.3 日期类型转换实例 112
5.6 使用SDN建模 113
5.6.1 节点建模 113
5.6.2 关系建模 116
5.7 使用SDN设计存储库接口 118
5.7.1 创建存储库接口 118
5.7.2 在标准方法中使用路径 120
5.7.3 自定义声明方法 120
5.7.4 使用底层方法 122
5.8 SDN配置 124
5.8.1 配置域对象和存储库接口 125
5.8.2 使用SDN驱动连接数据库 125
5.9 小结 127
第6章 应用实例一:NBA季后赛预测 128
6.1 应用背景分析 129
6.1.1 胜负预测的依据 129
6.1.2 NBA季后赛数据模型 129
6.2 实体对象建模 131
6.2.1 节点实体建模 131
6.2.2 关系实体建模 134
6.3 实体持久化和查询设计 135
6.3.1 东部球队存储库接口 136
6.3.2 西部球队存储库接口 137
6.3.3 比赛存储库接口 138
6.3.4 赢得关系存储库接口 139
6.4 预测算法设计 140
6.4.1 NBA季后赛的年度历史查询 141
6.4.2 一支球队的比赛历史查询 141
6.4.3 胜负比率排名算法 142
6.4.4 输赢预测算法 143
6.5 SDN配置及数据库连接 144
6.5.1 数据库连接配置 145
6.5.2 SDN配置 145
6.6 数据库设计验证 146
6.7 创建Web应用 149
6.8 Web前后端设计 150
6.8.1 Web后端设计 150
6.8.2 Web前端设计 154
6.9 比赛结果编辑设计 168
6.9.1 比赛结果编辑的访问控制设计 168
6.9.2 比赛结果的录入界面设计 171
6.10 胜率排名的Web设计 176
6.10.1 胜率排名的访问控制设计 176
6.10.2 胜率排名的界面设计 177
6.11 输赢预测的Web设计 180
6.11.1 输赢预测的访问控制设计 181
6.11.2 输赢预测的界面设计 182
6.12 使用GraphGists的测试数据 187
6.13 实例工程使用 188
6.13.1 工程配置 189
6.13.2 运行应用 189
6.14 小结 191
第7章 应用实例二:电影社区推荐引擎 192
7.1 应用背景分析 192
7.1.1 发现商业价值 193
7.1.2 建立数据模型 193
7.2 数据对象建模 194
7.2.1 节点建模 194
7.2.2 关系建模 199
7.3 存储库接口设计 201
7.3.1 影院存储库接口设计 201
7.3.2 电影存储库接口设计 202
7.3.3 节目存储库接口设计 203
7.3.4 观众存储库接口设计 204
7.4 Cypher查询算法设计 204
7.4.1 电影排名查询算法设计 205
7.4.2 电影推荐查询算法设计 205
7.5 数据访问服务类设计 208
7.5.1 分页查询公共服务类 209
7.5.2 数据访问服务类 210
7.6 数据库连接配置 212
7.6.1 SDN驱动的依赖引用 212
7.6.2 连接数据库配置 213
7.6.3 SDN配置 213
7.7 数据库设计验证 214
7.8 Web设计 217
7.8.1 访问控制设计 218
7.8.2 界面设计 222
7.9 电影评分的Web设计 242
7.9.1 电影评分访问控制设计 242
7.9.2 电影评分界面设计 244
7.10 电影排名的Web设计 247
7.10.1 电影排名访问控制设计 247
7.10.2 电影排名界面设计 248
7.11 电影推荐的Web设计 252
7.11.1 推荐电影给观众的Web设计 252
7.11.2 推荐电影给朋友的Web设计 257
7.12 管理后台的导航栏设计 258
7.13 实例工程使用 260
7.13.1 运行配置 260
7.13.2 应用发布 261
7.14 小结 262
第8章 Neo4j企业版安装及使用 263
8.1 分布式服务器安装 264
8.1.1 在不同机器上安装分布式服务器 264
8.1.2 在同一台机器上安装分布式服务器 272
8.2 使用Haproxy实施负载均衡服务 275
8.2.1 普通负载均衡配置 275
8.2.2 Haproxy服务监控 279
8.3 实现读/写分离的负载均衡服务 280
8.4 小结 284
第9章 Neo4j的数据安全及备份 286
9.1 数据的备份与恢复 286
9.1.1 数据备份 286
9.1.2 清理备份日志 288
9.1.3 数据恢复 289
9.2 数据库安全保障 290
9.3 数据的导入与导出 290
9.3.1 使用neo4j-import导入数据 291
9.3.2 使用Cypher导入数据 294
9.3.3 导出数据 295
9.4 故障恢复与事务日志 297
9.5 数据库升级 297
9.5.1 从2.x 升级到3.0.3 297
9.5.2 在3.x之间升级 299
9.6 小结 300
结束语 301
附录A 参考资料 302
在高速发展的互联网应用中,业务需求的频繁变更和数据的快速增长都要求数据库必须具有很强的适应能力。Neo4j图数据库正是一个能够适应这种业务需求不断变化和大规模数据增长而产生的数据库,它不但具有很强的适应能力,而且能够自始至终保持高效的查询性能。
现实世界中的一切事物都处在联系之中,如人际关系、电脑网络、地理数据、分子结构模型等,无一不处在纷繁复杂的联系之中。这种联系形成了一种互相关联的数据,联系才是数据的本质所在。传统的关系型数据库并不能很好地表现数据的联系,而一些NoSQL(NotOnlySQL,非关系型数据库)数据库也不能表现数据之间的联系。同样是NoSQL的Neo4j图数据库是以图的结构形式来存储数据的,它所存储的就是联系的数据,是关联数据本身。
关联数据中的联系本来就很复杂,若要在关系型数据库中使用结构化形式来表现这种联系,则一般不能直接表示,处理起来既烦琐又费事,并且随着数据的不断增长,其访问性能将日趋下降。无数的开发人员和数据库管理人员都或多或少地使用过关系型数据库,在其应用的规模化进展过程中,对于数据库的性能优化往往捉襟见肘、陷入窘境。Neo4j没有模式结构的定义,也不需要这些定义,它使用非结构化的方式来存储关联数据,所以能够直接表现数据的关联特性。
Neo4j不管是与关系型数据库相比,还是与其他NoSQL数据库相比,都具有很多前所未有的优势,主要表现在以下几个方面。
1.优越的性能表现
Neo4j具有永久高效的读取和写入能力,这种能力与数据库的大小无关,不管是初始创建的数据库,还是用了很长时间、积累了大量数据的数据库,Neo4j始终能保持闪电般的读/写速度。
2.设计的灵活性
因为Neo4j没有模式结构定义的约束,并且由于图结构的自然伸展特性,都给Neo4j提供了无限广阔的灵活设计空间,因为无论是扩展设计,还是增加数据,都不会影响到原来数据的正常使用。
3.迭代的敏捷性
正是由于Neo4j的灵活设计特性及其图结构数据的可伸缩性等特点,使其能追上业务需求变化发展的脚步,并且能适用于频繁迭代的敏捷开发方法。
4.安全可靠的特性
Neo4j不仅支持完整的事务管理特性,而且提供了实时在线备份功能,以及应对灾难事故进行日志恢复的方法,所有这些都充分说明了Neo4j是一个安全可靠的数据库。 Neo4j全栈开发 下载 mobi epub pdf txt 电子书 格式
Neo4j全栈开发 下载 mobi pdf epub txt 电子书 格式 2024
Neo4j全栈开发 下载 mobi epub pdf 电子书此用户未填写评价内容
评分好好好好好好好好好好好好
评分好书一本,适合开发者使用
评分东西很好 不愧是京东!
评分给力啊, 这本书是我需要的。
评分还可以
评分不错,还没细看
评分书很好,有空的时候认真看一下,先备着做技术储备。。。。。。。。。。。。。。。。。
评分还不错,例子是官网上的,java技术栈的推荐看
Neo4j全栈开发 mobi epub pdf txt 电子书 格式下载 2024