最详细的Neo4J解读(附安装教程)

简介: **Neo4j**是一种流行的基于**Java**语言编写的图形数据库。图是一组节点和连接这些节点的关系。图形数据库也被称为**图形数据库管理系统**或**GDBMS**, 其他的图形数据库是**Oracle NoSQL数据库**,**OrientDB**,**HypherGraphDB**,**GraphBase**,**InfiniteGraph**,**AllegroGraph**。

@[TOC](文章目录)

# 一、Neo4j简介


**Neo4j**是一种流行的基于**Java**语言编写的图形数据库。图是一组节点和连接这些节点的关系。图形数据库也被称为**图形数据库管理系统**或**GDBMS**, 其他的图形数据库是**Oracle NoSQL数据库**,**OrientDB**,**HypherGraphDB**,**GraphBase**,**InfiniteGraph**,**AllegroGraph**。

# 二、Neo4j - 特点和优势

## 1.Neo4j的特点

```bash

- SQL就像简单的查询语言Neo4j CQL

- 遵循属性图数据模型

- 通过使用Apache Lucence支持索引

- 支持UNIQUE约束

- 包含一个用于执行CQL命令的UI:Neo4j数据浏览器

- 支持完整的ACID(原子性,一致性,隔离性和持久性)规则

- 采用原生图形库与本地GPE(图形处理引擎)

- 支持查询的数据导出到JSON和XLS格式

- 提供了REST API,可以被任何编程语言(如Java,Spring,Scala等)访问

- 提供了可以通过任何UI MVC框架(如Node JS)访问的Java脚本

- 支持两种Java API:Cypher API和Native Java API来开发Java应用程序

```

## 2.Neo4j的优点

```bash

- 很容易表示连接的数据

- 检索/遍历/导航更多的连接数据是非常容易和快速的

- 非常容易地表示半结构化数据

- Neo4j CQL查询语言命令是人性化的可读格式,非常容易学习

- 使用简单而强大的数据模型

- 不需要复杂的连接来检索连接的/相关的数据,因为它很容易检索它的相邻节点或关系细节没有连接或索引

```

## 3.Neo4j的缺点或限制

```bash

- AS的Neo4j 2.1.3最新版本,具有支持节点数,关系和属性的限制

- 不支持Sharding

```

# 三、Neo4j - 数据模型

*Neo4j图数据库遵循属性图模型来存储和管理其数据。*


**属性图模型规则**


```bash

- 表示节点,关系和属性中的数据

- 节点和关系都包含属性

- 关系连接节点

- 属性是键值对

- 节点用圆圈表示,关系用方向键表示

- 关系具有方向:单向和双向

- 每个关系包含“开始节点”或“从节点”和“到节点”或“结束节点”

```

- *在属性图数据模型中,关系应该是定向的。如果我们尝试创建没有方向的关系,那么它将抛出一个错误消息。*

- *在Neo4j中,关系也应该是有方向性的。如果我们尝试创建没有方向的关系,那么Neo4j会抛出一个错误消息,“关系应该是方向性的”。*

- *Neo4j图数据库将其所有数据存储在节点和关系中。我们不需要任何额外的RDBMS数据库或无SQL数据库来存储Neo4j数据库数据。它以图形的形式存储其数据的本机格式。*

- *Neo4j使用本机GPE(图形处理引擎)引擎来使用它的本机图存储格式。*

- **图形数据库数据模型的主要构建块是:**


```bash

- 节点

- 关系

- 属性

```

- **简单的属性图的例子**

![在这里插入图片描述](https://ucc.alicdn.com/images/user-upload-01/2021063017505768.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTAwMTQ4MzA=,size_16,color_FFFFFF,t_70)

这里我们使用圆圈表示节点。 使用箭头的关系。 关系是有方向性的。 我们可以用Properties(键值对)来表示Node的数据。 在这个例子中,我们在Node的Circle中表示了每个Node的Id属性。


# 四、Neo4j安装及配置

本人的环境是win10,因此下文介绍Neo4j在win10上的安装。

## 1.安装Java JDK

neo4j是用Java语言编写的图形数据库,运行时需要启动JVM进程,因此需安装JAVA运行环境,推荐使用[JDK-11](https://download.oracle.com/otn/java/jdk/11.0.11+9/ab2da78f32ed489abb3ff52fd0a02b1c/jdk-11.0.11_windows-x64_bin.exe?AuthParam=1625047351_e3c06b1867abff9b4ca1677b93fcdd10)版本。(附:[JAVA环境变量配置](https://www.runoob.com/java/java-environment-setup.html))

## 2.下载安装Neo4j

从[官网](https://neo4j.com/download-center/)下载最新版 Neo4j 社区版(Community)

下载好后解压到自己想放的盘里,例如:D:\Program Files (x86)\neo4j-community-3.4.0

**Neo4j应用程序有如下主要的目录结构:**

```bash

- bin目录:用于存储Neo4j的可执行程序;

- conf目录:用于控制Neo4j启动的配置文件;

- data目录:用于存储核心数据库文件;


- plugins目录:用于存储Neo4j的插件;

```

## 3.创建系统环境变量

在计算机-属性中创建系统环境变量**NEO4J_HOME**,并把主目录(**D:\Program Files (x86)\neo4j-community-3.4.0**)设置为变量值。再在path中添加变量`%NEO4J_HOME%\bin`

```handlebars

NEO4J_HOME=D:\Program Files (x86)\neo4j-community-3.4.0

```

**最快方法**:直接在path目录下添加变量 `D:\Program Files (x86)\neo4j-community-3.4.0\bin`

## 4.Neo4j的启动和停止

**法一:通过控制台启动Neo4j程序**


```handlebars

WIN+R 键运行 cmd 进入命令提示符 ,接着输入

> neo4j.bat console

> (注意:使用此方法运行后的窗口不要关闭,否则服务器端口也会自动关闭)

```

法二:把Neo4j安装为服务

安装和卸载服务:



```handlebars

neo4j install-service    #安装服务

```


```handlebars

neo4j uninstall-service  #卸载服务

```

启动服务,停止服务,重启服务和查询服务的状态:


```handlebars

neo4j start  #启动服务

```

```handlebars

neo4j stop  #停止服务

```

```handlebars

neo4j restart #重启服务

```

```handlebars

neo4j status #查询服务状态

```


> 在浏览器中打开 http://localhost:7474 默认跳转到 http://localhost:7474/browser,出现Neo4j界面,则安装成功。

> 初始用户名密码均为 neo4j,首次登录会直接进入修改密码界面,按提示设置新密码即可。

>


```handlebars

如果 neo4j stop不能停止 neo4j,用 kill -s 9 强制杀掉进程即可。

```

## 5.切换数据库

每次启动neo4j,它只能读取一个数据库。默认情况下的Graph.db数据库。

**法一:修改配置文件**

使用Neo3.x创建新数据库而不删除现有数据库,所以只需在`$NEO4J_HOME\conf`的目录编辑neo4j.conf。搜寻`dbms.active_database=`,其默认值应为 graph.db。用其他名称替换它,然后再次启动neo4j。现在,将在该目录名下创建一个新数据库。若要切换回以前的 db,请重复这些步骤,只需在配置文件中将新值替换为 graph.db 即可。

```handlebars

注意:如果在neo4j启动的时候修改了配置文件,则需要重新启动一次,浏览器页面才会更新。

```

**法二:建立软连接(linux环境)**

首次修改:

```handlebars

cd $NEO4j_HOME/data/databases/  #请将$NEO4j_HOME改为你的neo4j的安装路径

mv graph.db graph1.db  # 保存原来数据库

ln -s graph2.db graph.db #建立指向新数据库的软件接

cd $NEO4j_HOME/bin

./neo4j restart    #重启neo4j

```

再次修改(访问 **graph3**):

```handlebars

ln -s graph3.db graph.db #建立指向新数据库的软件接

cd $NEO4j_HOME/bin

./neo4j restart    #重启neo4j

```

# 五、Neo4j的CQL操作

参考网址:

[W3Cschool-neo4j教程](https://www.w3cschool.cn/neo4j/neo4j-i5411xfd.html)

[Neo4j官方教程](http://neo4j.com.cn/public/cypher/neo4j_cql_introduction.html)




目录
相关文章
|
Ubuntu
Ubuntu Server 20.04 LTS下载及安装教程
Ubuntu Server 20.04 LTS下载及安装教程
2636 0
Ubuntu Server 20.04 LTS下载及安装教程
|
2月前
|
存储 网络安全 数据库
【2024最新版】neo4j安装配置
【2024最新版】neo4j安装配置
77 0
|
9月前
|
SQL NoSQL 算法
Neo4j极简教程
图数据库是NoSQL类数据库的一大典型代表,在国内图数据库属于新兴事物,其优异的复杂关系解决方案引起了国内众多大型互联网公司及IT开发者的关注,而Neo4j是目前图形化数据库中最为出色、最为成熟的产品。
603 0
Neo4j极简教程
|
5月前
|
存储 NoSQL Java
安装win版本的neo4j(2023最新版本)
安装win版本的neo4j(2023最新版本)
89 0
|
10月前
|
数据库管理
Neo4j一些命令
Neo4j的CREATE命令
67 0
|
10月前
Neo4j的一些命令
delete命令
79 0
|
10月前
neo4j的一些命令
return命令
74 0
|
11月前
|
SQL 数据可视化 NoSQL
|
存储 NoSQL Java
Neo4j学习笔记(一) 安装配置
Neo4j学习笔记(一) 安装配置
458 0
|
SQL NoSQL Oracle
Neo4J 介绍及安装|学习笔记
快速学习 Neo4J 介绍及安装
510 0
Neo4J 介绍及安装|学习笔记