Neo4j详细介绍及入门教程

1. 什么是Neo4j?

Neo4j是用Java实现的开源NoSQL图数据库。从2003年开始开发,2007年正式发布第一版,其源码托管于GitHtb。Neo4j作为图数据库中的代表产品,已经在众多的行业项目中进行了应用,如:网络管理、软件分析、组织和项目管理、社交项目等方面。 Neo4j实现了专业数据库级别的图数据模型的存储,提供了完整的数据库特性,包括ACID事务的支持、集群的支持、备份和故障转移等

Neo4j提供了申明式的查询语言Cypher,它类似于关系型数据库中的SQL语言,其具有表现力丰富、使用简单、查询效率高、高扩展性等特点。

它存储的数据大致是这样的:

图片[1]-Neo4j详细介绍及入门教程-不念博客

其中,紫色圆圈是【人】数据,橙色圆圈是【电影】数据,表示人与电影之间参演或导演的数据关系

2. Neo4j版本说明

Neo4j有两个不同的版本,分别是:

  • 社区版(Community Edition)
    • 具备了基本功能的版本,功能较为完整,没有提供企业服务。
  • 企业版(Experience Edition)
    • 企业版相对于社区版而言,增加了一些功能,如:集群、高级监控、高级缓存、在线备份等功能。
建议:开发环境使用社区版,生产环境使用企业版。
说明:企业版从3.2版本开始支持集群,无地理位置限制并且可以做到事务的ACID特性。

Neo4j企业·参考:http://neo4j.com.cn/topic/59b0a3f59fe13f5e0a2212b2

图片[2]-Neo4j详细介绍及入门教程-不念博客

3. Neo4j部署安装

Neo4j支持众多平台的部署安装,如:Windows、Mac、Linux等系统。

Neo4j是基于Java平台的,所以部署安装前先保证已经安装了Java虚拟机。

在神领物流项目中,我们采用docker的方式进行安装。安装命令如下:

docker run \
-d \
--restart=always \
--name neo4j \
-p 7474:7474 \
-p 7687:7687 \
-v neo4j:/data \
neo4j:4.4.5

注意: 7474是web管理工具的端口,7687是neo4j协议端口进行数据通信打开浏览器,输入地址:http://192.168.150.102:7474

首次登录用户名密码neo4j/neo4j

图片[3]-Neo4j详细介绍及入门教程-不念博客

如果是第一次登录,默认密码是:neo4j,首次登录需要重置密码:

图片[4]-Neo4j详细介绍及入门教程-不念博客

登录成功后可以看到如下界面:

图片[5]-Neo4j详细介绍及入门教程-不念博客

4.Neo4j web 工具介绍

Neo4j提供了web工具,可以对neo4j进行CRUD的操作。

图片[6]-Neo4j详细介绍及入门教程-不念博客

5.体验Neo4j

下面我们通过官方提供的电影数据体验下Neo4j:

图片[7]-Neo4j详细介绍及入门教程-不念博客

5.1.加载数据

创建数据语句会自动写入到Cypher语句输入框中,点击运行:

图片[8]-Neo4j详细介绍及入门教程-不念博客

创建成功:

图片[9]-Neo4j详细介绍及入门教程-不念博客

5.2. 查询数据

查询【Tom Hanks】参演了哪些电影:

MATCH (tom:Person {name: "Tom Hanks"})-[:ACTED_IN]->(tomHanksMovies) RETURN tom,tomHanksMovies

查询结果:

图片[10]-Neo4j详细介绍及入门教程-不念博客

6.数据结构

Neo4j中采用节点、属性、关系、标签来存储数据。如下:

图片[11]-Neo4j详细介绍及入门教程-不念博客
  • 节点
    • 存储实体数据,在上图中,演员、电影都是节点。
    • 可以理解为关系型数据库中的表。
  • 关系
    • 存储节点之间的关系。
    • 关系只能有一个类型,必须有开始节点和结束节点以及指向。
    • 关系可以自我循环引用,但是两头永远不能为空。
  • 属性
    • 节点和关系都可以有属性,它是由键值对组成的。
    • 节点的属性可以理解为关系型数据库中的字段。
    • 关系中的属性进一步的明确了关系。
  • 标签
    • 标签是对节点的分类,这样使得构建Neo4j数据模型更加简单。
    • 在上面的电影案例中,Movie、Person就是标签。
© 版权声明
THE END