Neo4j全栈开发
  • 推荐0
  • 收藏0
  • 浏览239

Neo4j全栈开发

陈韶健 (作者) 

  • 书  号:978-7-121-31447-6
  • 出版日期:2017-06-01
  • 页  数:316
  • 开  本:16(185*235)
  • 出版状态:图书立项
  • 维护人:安娜
纸质版 ¥69.00

相关图书

移动Web前端高效开发实战:HTML 5 + CSS 3 + JavaScript + Webpack + React Native + Vue.js + Node.js

iKcamp (作者)

移动互联网的兴起和快速普及,给前端开发人员带来了前所未有的新机遇。移动Web前端技术作为整个技术链条中重要的一环,却乱象丛生。本书是一本梳理移动前...

 

架构探险:轻量级微服务架构(下册)

黄勇 (作者)

本书将重点关注微服务基础设施方面,其中大部分内容涉及微服务运维相关技术。全书以实践的角度进行编写,读者首先将学习到轻量级微服务架构的全景视图,随后的各个章节将围...

¥79.00

高性能SQL调优精要与案例解析

闫书清 (作者)

本书共分为两篇,基础篇(第1 章~第10 章)介绍了SQL 调优应该具备和掌握的理论和方法,<br>实践篇(第11 章)精选并深入解析了10 个现实中的实际案例...

¥69.00

Effective SQL:编写高质量SQL语句的61条有效方法(英文版)

John L. Viescas; Douglas J. Steele;Ben G. Clothier (作者) (译者)

本书全面系统地介绍了SQL语言各方面的基础知识以及一些高级特性,包括SQL数据语言、SQL方案语言、数据集操作、子查询以及内建函数与条件逻辑等内容。书中每个章节...

 

Java Web轻量级开发面试教程

孟宪福 胡书敏 金华 (作者)

本书围绕着软件公司对高级程序员的平均标准要求,根据笔者多年的面试和培训经验,构建了Java Web方面的高级程序员的进阶体系,包括初级程序员与高级程序员的差别对...

 

架构探险:从零开始写分布式服务框架

李业兵 李业兵 (作者)

分布式服务框架目前已经是互联网公司实现SOA服务化架构的必备基础设施,对于一般的开发而言,自己要独立实现一个分布式服务框架,还是有相当的难度的。本书围绕如何从零...

 
《Neo4j全栈开发》全面、系统地介绍了Neo4j这个独特而又高性能的NoSQL图数据库,从使用Neo4j进行程序开发,到Neo4j的管理和配置等层面全方位地阐释了Neo4j的整个生态体系。
《Neo4j全栈开发》不仅着重介绍了怎样以简单易用的方式来使用Neo4j,更难能可贵的是,《Neo4j全栈开发》还分享了使用分布式Neo4j构建高可用的读/写分离负载均衡配置的实际操作过程和实现细节。
通过对《Neo4j全栈开发》的学习,读者将系统地掌握Neo4j的知识,并很快将其用于项目开发之中,为自己的应用提升访问性能,解决燃眉之急。
Neo4j是一个高性能的NoSQL图数据库,并且具备完全事务特性。在高速发展的互联网应用中,数据的快速增长强烈要求有数据库必须具有很高的查询性能,才能适应业务的发展和变化,Neo4j正是适应这种大规模的数据增长而产生的数据库。
在高速发展的互联网应用中,业务需求的频繁变更和数据的快速增长都要求数据库必须具有很强的适应能力。Neo4j图数据库正是一个能够适应这种业务需求不断变化和大规模数据增长而产生的数据库,它不但具有很强的适应能力,而且能够自始至终保持高效的查询性能。
现实世界中的一切事物都处在联系之中,如人际关系、电脑网络、地理数据、分子结构模型等,无一不处在纷繁复杂的联系之中。这种联系形成了一种互相关联的数据,联系才是数据的本质所在。传统的关系型数据库并不能很好地表现数据的联系,而一些NoSQL(Not Only SQL,非关系型数据库)数据库也不能表现数据之间的联系。同样是NoSQL的Neo4j图数据库是以图的结构形式来存储数据的,它所存储的就是联系的数据,是关联数据本身。
关联数据中的联系本来就很复杂,若要在关系型数据库中使用结构化形式来表现这种联系,则一般不能直接表示,处理起来既烦琐又费事,并且随着数据的不断增长,其访问性能将日趋下降。无数的开发人员和数据库管理人员都或多或少地使用过关系型数据库,在其应用的规模化进展过程中,对于数据库的性能优化往往捉襟见肘、陷入窘境。Neo4j没有模式结构的定义,也不需要这些定义,它使用非结构化的方式来存储关联数据,所以能够直接表现数据的关联特性。
Neo4j不管是与关系型数据库相比,还是与其他NoSQL数据库相比,都具有很多前所未有的优势,主要表现在以下几个方面。
1. 优越的性能表现
Neo4j具有永久高效的读取和写入能力,这种能力与数据库的大小无关,不管是初始创建的数据库,还是用了很长时间、积累了大量数据的数据库,Neo4j始终能保持闪电般的读/写速度。
2. 设计的灵活性
因为Neo4j没有模式结构定义的约束,并且由于图结构的自然伸展特性,都给Neo4j提供了无限广阔的灵活设计空间,因为无论是扩展设计,还是增加数据,都不会影响到原来数据的正常使用。
3. 迭代的敏捷性
正是由于Neo4j的灵活设计特性及其图结构数据的可伸缩性等特点,使其能追上业务需求变化发展的脚步,并且能适用于频繁迭代的敏捷开发方法。
4. 安全可靠的特性
Neo4j不仅支持完整的事务管理特性,而且提供了实时在线备份功能,以及应对灾难事故进行日志恢复的方法,所有这些都充分说明了Neo4j是一个安全可靠的数据库。
5. 简单易用的特性
Neo4j在使用上非常简单,不管是使用Java开发语言,还是使用其他开发语言,如Python、Ruby、PHP、.NET、Node.js等,都能够非常方便地访问Neo4j。特别是Spring Data Neo4j开发包,更是提供了一整套非常简单易用的Neo4j数据库使用方法。
6. 丰富的学习资源
Neo4j的社区版滋生了一个非常活跃的社区,在这个社区中,诸多开发者提供了非常丰富的使用Neo4j的案例——GraphGists,这是学习使用Neo4j的极好资源。通过对这些GraphGists的学习和交流,不仅能拓展你的思路,更能让你的开发工作变得更加简单和容易,而且还能帮助你快速构建应用的商业模型。
7. 大企业的考验
Neo4j拥有广大而又有实力的用户群体,并且经过几年时间的运行实践,充分验证了它的稳定性和健壮性。如思科、沃尔玛、阿迪达斯等公司,都在使用Neo4j的过程中挖掘到了图数据库的巨大威力,并且创造出了蓬勃发展的商业模型。
综上所述,使用如此优秀的数据库,不仅可以提升一个应用的性能,而且可以适应大规模的数据增长,同时还能减轻开发人员和数据库管理人员的工作负担,给你和你的企业以及你的用户带来前所未有的优越体验。
读者对象
本书适合所有开发人员,特别是Spring Boot开发者阅读,同时适合数据库管理人员和系统设计人员学习使用,并可作为系统策划者进行数据库选型的参考资料。
实例代码下载
本书各章的实例代码下载在各个章节中都有明确说明,同时也可以通过以下网址选择不同项目进行下载或检出:
https://github.com/mr-csj?tab=repositories

目录

第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图数据库的那些明显优势

    聊聊Neo4j图数据库的那些明显优势

    管理员账号 2017-06-12

    小编说:Neo4j是一个NoSQL的图数据库管理系统,像其他NoSQL数据库一样具有高效的查询性能。同时,Neo4j还具有完全事务管理特性,完全支持ACID事务管理。Neo4j与其他数据库相比,具有哪些明显的优势呢?本文选自《Neo4...

    管理员账号 2017-06-12
    346 0 0 0
  • Neo4j数据模型设计

    Neo4j数据模型设计

    管理员账号 2017-06-19

    小编说:数据模型设计是数据建模的第一步,因为Neo4j不需要模式结构定义,所以使用简单框图就可以为一个项目或应用设计数据模型。创建数据模型之后,就可以使用SDN进行数据实体建模和一些数据访问的设计。本文选自《Neo4j全栈开发》。 ...

    管理员账号 2017-06-19
    38 0 0 0
  • 讲书3分钟丨《Neo4j全栈开发》-讲书人 陈韶健

    讲书3分钟丨《Neo4j全栈开发》-讲书人 陈韶健

    王一 2017-08-02

    只需3分钟就能快速了解一本书! 由作(译)者发声讲书,直指新书的特点与主旨。 只需利用碎片化时间,省时省力选到适合自己的好书 音频链接 http://www.ximalaya.com/78614528/sound/45855...

    王一 2017-08-02
    20 1 0 0