《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
读者有留言请到:https://github.com/mr-csj/discuss/issues发表,这样会及时通知到作者,谢谢!
陈老师, 您好, 请问neo4j的图形可视化界面的展示用的js相关文件是哪些呀?
第四章 最短路径部分用到的电影社区数据文件有吗?