前言
好多技术都是因为项目使用,才与之结缘;同样的Neo4j也是如此;
网上大多都是基础入门教程,对于在实际项目中遇到的坑没有一个很好的解释;所以才有了此系列的诞生;
本系列博文,除了基础的neo4j教程外,也会涉及到很多实际开发中遇到的问题;
还有关于Neo4j架构与应用;
关于Neo4j系列
本系列博文将从Neo4j概述、CQL语言和Spring Data Neo4j、Neo4j架构与应用方面来学习Neo4j。 每一部分都有简单易懂的例子,熟读三国的朋友会感觉很有意思,同时博主的项目中遇到很多问题,都会一一把坑儿填上,博文地址如下:
- Neo4j系列(一)----初始Neo4j
- Neo4j系列(二)----Neo4j Cypher
- Neo4j系列(三)----Neo4j和Spring Data Neo4j
- Neo4j系列(四)----Neo4j架构与应用
参考
《Neo4j 实战》是学习Neo4j挺不错的书籍,还有以下地址:
接下来,就让我们进入Neo4j的世界!
一、Neo4j概述
1.1 名词解释
图(Graph)
图是最普遍的自然结构,是由顶点(Vertex)、边(Edge)和属性(Property)组成的,顶点也称作节点,边也称作关系,顶点和边可以设置属性,每个节点和关系都可以由一个或多个属性。
图形数据库(Graph Database)
也称为图形数据库管理系统(GDBMS),区别于关系型数据库(Oracle、Mysql),用于存储丰富的关系数据。图形数据库将结构化数据存储在图上而不是表中,是一个嵌入式的、基于磁盘的、具备完全事务特性的Java持久化引擎。
Neo4j:Neo4j 是目前最流行的图形数据库,是一个开源的、高性能的Nosql图形数据库。其特点如下:
- 支持简单的查询语言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应用程序
1.2 Neo4j 模型规则
如图所示,三国中曹操、刘备、孙权C位出道,三个大BOSS都有字,互为敌人关系,都想干掉对方的那种;每个BOSS也都有自己的将军和军师;这里面就隐藏着Neo4j的模型规则:
Neo4j的主要构建块是:节点、关系、属性
Neo4j将数据作为节点和关系存储,节点和关系都可以包含属性,属性是键值对的形式;关系连接节点,具有方向性:单向和双向。每个关系包含开始节点和结束节点。
每一个节点可以有一个或者多个文字描述,称为节点标签,具有同样标签的节点用一种专用的方式存储;
在Neo4j中,关系是有方向性的。如果我们尝试创建没有方向的关系,那么Neo4j会抛出一个错误消息,“关系应该是方向性的”。
Neo4j是一个无架构数据库,在开始添加数据时,无需定义表和关系,也不需要任何额外的RRBMS数据库来存储Neo4j数据。使用查询语言Neo4j CQL就能够很好的操作数据(在下一节 我们详细了解CQL):
二、Neo4j安装
Neo4j是基于Java的图形数据库,运行Neo4j需要启动JVM,因此必须先安装JAVA SE的JDK,部署环境变量;
Neo4j官网地址:选择自己系统版本, 当然,国外的网络,下载速度,你懂得。
linux版本安装包下载:
neo4j-community-3.3.6-unix.tar
windows 安装包下载:
neo4j-community-3.3.6-windows.zip
2.1 windows版本安装
1.将下载好的windows zip解压缩,解压后的文件夹内容如图:
2.配置环境变量:
3.在dos命令行中,进入neo4j安装目录下的bin目录,执行命令neo4j.bat console
,出现如图所示信息,neo4j启动成功:
4.打开浏览器,输入:localhost:7474,出现以下界面,默认账户和密码(neo4j:neo4j),接下来就能操作neo4j啦!
2.2 linux版本安装
同样的安装之前,确认JVM安装完毕:
[root@linux-text3 ~]# java -version
java version "1.7.0_09-icedtea"
OpenJDK Runtime Environment (rhel-2.3.4.1.el6_3-x86_64)
OpenJDK 64-Bit Server VM (build 23.2-b09, mixed mode)
将安装包解压
tar -zxvf neo4j-community-3.3.6-unix.tar.gz
修改当前用户环境变量:vim /root/.bash_profile
,在文末添加如下代码
export PATH=/software/neo4j/neo4j-community-3.3.6/bin:$PATH
执行source /root/.bash_profile
使配置生效
vim neo4j.conf 配置文件,让它可以从远程访问控制台
启动neo4j数据库,如图所示
浏览器连接测试,安装成功。