Neo4J 介绍及安装|学习笔记

本文涉及的产品
云原生数据库 PolarDB PostgreSQL 版,标准版 2核4GB 50GB
云原生数据库 PolarDB MySQL 版,通用型 2核8GB 50GB
简介: 快速学习 Neo4J 介绍及安装

开发者学堂课程【SpringBoot 实战教程  Neo4J 介绍及安装】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/651/detail/10810


Neo4J 介绍及安装


内容介绍:

一、介绍

二、安装

 

一、介绍

1、Neo4j 是一个高性能的,NOSQL 非关系型redis 属于关系型数据库图形数据库,它是一个嵌入式的、基于磁盘的、具备完全的事务特性的 Java 持久化引擎,但是它将结构化数据存储在网络(从数学角度叫做图)上而不是表中。Neo4j 也可以被看作是一个高性能的图引擎,该引擎具有成熟数据库的所有特性。

2、这种数据库与传统的关系型数据库有很大的差别。关系型数据库与图形数据库比较

(1)关系型数据库:

常用的像 mysql,oracle 等都是关系型数据库,在关系型数据库里面对数据的处理是这样子的对每个对象都创建一个表,对象的属性对应表里面的列这是一张用户表

id

name

sex

phone

1

tim

boy

110

2

lili

girl

120

所示。在数据库里有条数据表示两个对象:tim,lili。在现实生活中会发现任何对象都是有某种联系的,那么关系型数据库里是怎样来表示这种关系呢?就比如tim和 lili 是好朋友,那么在数据库里怎样来表示他们的关系呢?关系型数据库里面是这样处理的新建一个 relationship 的表,表里面有两个字段 id,friendid。

id

friendid

1

2

2

1

如图所示。如果要查找 tim 的朋友那么可以遍历 relationship 表就可以了。这种数据模型会有什么问题呢?其实可以对这个数据模型提个问题——tim 的朋友的朋友的朋友的朋友是谁?好,关系型数据会这样回答你的问题:首先在 relationship 表里面找到所有 id 为1(tim 的 id)的数据,然后拿到对应的 friendid,接着逐个根据friendid再进行遍历找到对应的 friendid,如此反复地遍历查询也许10分钟也许一小时,也许它永远都无法回答你的问题。其实,这种关系只要超过5级关系型数据库就无法解决问题,这就是为什么需要图形数据库的出现了。

有些情况下并不是查它的朋友可能会查它朋友朋友的朋友虽然也能实现但是查询写 sql 语句比较麻烦另外查询语句执行的性能会比较低在这种情况下 Neo4j 可以解决这个问题它把每一个用户看作一个节点多个用户就是多个节点用户和用户之间是有关系的节点和节点之间有关系

(2)图形数据库:

在图形数据库里面对数据的处理是这样子的:每个对象都表示成为一个节点(node),每个节点之间的联系表示成关系(relationship),节点与节点之间用关系关联在一起。可以看图更好理解一点。

image.png

如图所示,有三个节点(node)它们都通过 FRIEND 关系(relationship)关联起来。Tim 的朋友是 lili,lili 跟 jack 互为朋友,同时 jack 认识 tim。在图形数据库里要回答像“tim 的朋友的朋友的朋友”的问题非常简单,数据库只需要找到 tim 的关系(relationship)所对应的节点然后找到对应节点的关系(relationship),只需遍历几次,这样就可以很容易回答了上面的问题了。

圆圈表示节点一个圆圈是一个节点节点和节点之间就是用户和用户之间箭头表示它们之间的关系表示 tim 认识 lililili 认识 jackjack 认识 lilijack 认识 tim但是 tim 不一定认识 jacktim 的朋友是 lilitim 的朋友的朋友是 jack从图形化的上面很容易找到相应的朋友如果用关系型数据库就相对比较麻烦甚至比如找朋友的朋友的朋友基本上实现不了这就是图形数据库最近几年之所以流行的原因


二、安装

1下载 windows 环境下的安装包 neo4j-community-3.3.4-windows.zip

2解压,解压到某一个目录下比如目录为 E:\neo4j目录结构bin 是 neo4j 的可执行文件配置文件conf 是数据存放的目录data 是它自己的架包

3设置环境变量配置方式和 java 一样

(1)变量名:NEO4J_HOME

(2)变量值:E:\neo4j

(3)再修改变量 path,增加 %NEO4J_HOME%\bin

4查看并编辑配置参数

%NEO4J_HOME%\conf\neo4j.conf

5启动

在 DOS 命令行窗口,执行:neo4j.batconsole

2018-03-29 08:36:21.329+0000INFO

2018-03-29 08:36:21.372+0000INFOStarting.

018-03- -29 08:36:23. 145+0000INFOBolt enabled on 127. 0.0.1: 7687/

2018-03-29 08: 36: 28.204+0000INFOStarted.

2018-03- 29 08:38: 43. 999+0000 INFORemote interface available at http://localhost: 7474/

看到这个信息说明 neo4j 正常启动了相当于 neo4j 服务启动了端口是7474。

6打开 neo4j 集成的浏览器如果是第一次访问会要求登陆登陆名和密码都是 neo4j它会要求修改密码

http://localhost:7474/

出现以下页面就证明 neo4j 安装成功并且启动成功可以正常访问

既然它是数据库就像 mysql操作 msql 需要 sql 语句增删改查

Cypher 语言:Cypher 是专门为图像数据库设计的语言,它浅显易懂。图形数据库也就是 neo4j重点就两个一个是节点一个是关系创建节点的同时创建关系另外涉及到查询查询节点举例,假如要创建这么一个数据模型好友 A 与好友 B 是朋友关系,好友 B 与 C 也是朋友关系,好友 A 认识 C 但 C 不认识 A这样的数据模型用 Cypher 描述如下:

create 建立节点

(A:Person 节点里面指定了属性属性的名字和属性的值{name:'jack'})-[:Friend]->(B:Person{name:'tom'})-[:Friend]->(C:Person 这是一个节点

{name:'lucy'}),(A)-[:Know]->(C)这是一个节点

(注:()里面的是节点,[]里面的是关系,{}里的是属性名和属性值类似于阶层格式>表示关系的方向)中括号是关系friend朋友关系说明 a 和 b 是朋友关系箭头是指向 ba 是认识 b 的b 是 a 的朋友c 是 b 的朋友

要查询A的一个名叫”tom”的朋友:

match(a)-[:Friend]->(b)  a 的朋友用 b 代表

Whereb.name='tom'查询条件朋友必须叫 tom

Returnb 查询之后返回

Cypher 语言的实现用的是 match

相关实践学习
使用PolarDB和ECS搭建门户网站
本场景主要介绍如何基于PolarDB和ECS实现搭建门户网站。
阿里云数据库产品家族及特性
阿里云智能数据库产品团队一直致力于不断健全产品体系,提升产品性能,打磨产品功能,从而帮助客户实现更加极致的弹性能力、具备更强的扩展能力、并利用云设施进一步降低企业成本。以云原生+分布式为核心技术抓手,打造以自研的在线事务型(OLTP)数据库Polar DB和在线分析型(OLAP)数据库Analytic DB为代表的新一代企业级云原生数据库产品体系, 结合NoSQL数据库、数据库生态工具、云原生智能化数据库管控平台,为阿里巴巴经济体以及各个行业的企业客户和开发者提供从公共云到混合云再到私有云的完整解决方案,提供基于云基础设施进行数据从处理、到存储、再到计算与分析的一体化解决方案。本节课带你了解阿里云数据库产品家族及特性。
相关文章
|
存储 机器学习/深度学习 人工智能
知识图谱入门一:知识图谱介绍,Neo4j下载、安装基本使用
知识图谱入门一:知识图谱介绍,Neo4j下载、安装基本使用
1217 0
知识图谱入门一:知识图谱介绍,Neo4j下载、安装基本使用
|
2月前
|
人工智能 运维 安全
阿里云函数计算 AgentRun 全新发布,构筑智能体时代的基础设施
云原生应用平台 Serverless 计算负责人杨皓然在云栖大会发表主题演讲“Serverless Agent 基础设施:助力大规模 Agent 部署与运维”。本议题深入介绍了阿里云以函数计算为核心打造的 Agent 基础设施——AgentRun,阐述其如何通过创新的运行时、模型服务、网关及可观测体系,为企业构筑坚实、高效、安全的 Agent 时代基石。
|
8月前
|
消息中间件 人工智能 自然语言处理
基于 RocketMQ 事件驱动架构的 AI 应用实践
基于 RocketMQ 事件驱动架构的 AI 应用实践
289 2
|
SQL NoSQL 算法
Neo4j极简教程
图数据库是NoSQL类数据库的一大典型代表,在国内图数据库属于新兴事物,其优异的复杂关系解决方案引起了国内众多大型互联网公司及IT开发者的关注,而Neo4j是目前图形化数据库中最为出色、最为成熟的产品。
1123 0
Neo4j极简教程
|
API 数据处理 Python
探秘Python并发新世界:asyncio库,让你的代码并发更优雅!
【7月更文挑战第11天】Python的asyncio库简化了单线程并发编程,利用协程和事件循环实现异步操作。async def定义异步函数,await挂起协程等待IO完成。例如,fetch_data模拟网络请求,main函数并发执行多个任务。asyncio.gather收集结果,Semaphore限制并发数,保证资源管理。asyncio提供高效优雅的并发解决方案。
262 4
|
消息中间件 算法 Java
金石推荐 |【算法数据结构专题】「延时队列算法」史上手把手教你针对层级时间轮(TimingWheel)实现延时队列的开发实战落地(上)
金石推荐 |【算法数据结构专题】「延时队列算法」史上手把手教你针对层级时间轮(TimingWheel)实现延时队列的开发实战落地(上)
260 1
|
存储 网络安全 数据库
【2024最新版】neo4j安装配置
【2024最新版】neo4j安装配置
2589 0
|
存储 缓存 NoSQL
Neo4J 2|学习笔记
快速学习 Neo4J 2
498 0
Neo4J 2|学习笔记
|
SQL 监控 Java
Seata常见问题之报找不到全局事务可能已经完成如何解决
Seata 是一个开源的分布式事务解决方案,旨在提供高效且简单的事务协调机制,以解决微服务架构下跨服务调用(分布式场景)的一致性问题。以下是Seata常见问题的一个合集
2220 0
|
机器学习/深度学习 自然语言处理 算法
Coggle 30 Days of ML(23年7月)任务六:训练FastText、Word2Vec词向量
Coggle 30 Days of ML(23年7月)任务六:训练FastText、Word2Vec词向量
下一篇
oss云网关配置