neo4j 图数据库安装及介绍
neo4j 图数据库安装及介绍
一、neo4j图数据库介绍
图数据库,顾名思义就是利用了“图的数据结构来作为数据存储逻辑体现的一种数据库”,所以要想学好图数据库当然需要了解一些关于图数据结构的算法!同样的作为图数据结构中很多常用的算法在图数据库中是默认提供支持的,对数据进行查询、计算的操作,比如常见的最短路径算法
、pagerank算法
等等这些算法,都是图数据结构中常见的算法!当然了neo4j
作为一个图数据库当然也会提供这些算法的实现,方便使用者对数据进行操作!
那么图数据结构具体又包含些什么特点?
首先图数据结构,最重要的就是,边(Edge)
、顶点(Node)
、方向(Direction)
三个最基本的元素,数据主要是挂载在顶点
和边
上,那么边
和方向
主要用来表示顶点和顶点之间的关系网
这样将我们需要分析的数据建模成为一个网状的模型,也就是所谓的图
,在某些场景中边
也会包含一些权重
值,用于表示顶点
和顶点
之间数据关系的重要性!
下面就简单来进行模拟一个图的数据结构,徒手来画一个,更加直观
如上图就是非常的一个简单的图结构,这里面包含着电影、观众、导演、作家,非常的直观,当然目前的这个图是非常简单的图,这种关系通过传统的关系型数据库
同样是可以进行描述的,但是关系型数据库
在处理关系网的时候处理能力是相对弱的,而且比起图数据库
来说会显得麻烦复杂同时效率低下;比如我在在非常大的一个图中需要寻找节点之间最短路径
,其实这种场景是非常常见的,比如QQ共同好友
这些功能就是利用了你好友列表中的关系网,同时它能够给你推送你的其他好友中包含的好友,而且这种好友基本上你都是认识的,这就是典型的通过关系网
进行分析得出的结果,具体的分析当然看业务,而且运用的场景也会非常多!
上面这些基本上就算是基本的介绍,具体的使用场景和一些细节后面会专门在写相关的点的文章再来回顾!
那么说了这么多,发现我们的真实数据
实际上是可以在顶点上
和边
上的,那么边
上的数据当然是要和顶点之间建立某种关系
或联系
的数据,上面的模型其实只是简单的数据模型,那么复杂的数据模型当中,人
的属性是非常多的,电影
的属性也同样是非常多的,那么这些定点
和边
自然也就要承载更多的数据,所以顶点
和边
都后挂载属性,这样建立出来的数据模型就会更加完整,比如人
他有电话、家庭地址、工作等等,电影同样也会有很多属性,这样的话,自然而然通过对关系网的分析,其实会得到很多有用的价值,比如给他推荐电影推荐哪里的电影院合适
等等问题!
接下来再来说说关系型数据库
中会存在唯一键
,同样图数据库
中也存在唯一键
,顶点
和边
都存在
根据上面所说的这些信息可以基本分析出来,图数据库中的数据模型基本上就是下面内容
Edge:[Id,Object]
Node:[Id,Object]
基本上就是上面的这种模型,一个图就是由所有的顶点
和所有的边
构成的,那么现在暂时还不去管图数据库
在底层到底是怎么存储数据的,其实这里可以提一下,其实就是把边和顶点进行拆分,然后分别存储,但是具体不同的图数据库
实现是不一样的,上面的Object
代表的就是不断抽象出来的属性,所以,一个顶点
和一条边
实际上是可以存储很多数据的
上面这些内容基本上就说到这,后面在使用的过程中会有更多的细节,同时会有更加深入的了解,下面就是先把neo4j
环境先弄起来
二、neo4j环境搭建
neo4j
分为社区版
和企业版
,企业版
为收费版本,主要是支持分布式,因为单节点的处理能力是有限的,但是收费非常高,所以在没有资源的情况下选择使用社区版本,单机进行处理图关系,当然对于大规模图处理还有其他的图数据库
或者图数据引擎
,比如Spark Graphx
、Tian
等等,还有很多,有些大公司内部估计还有自己的内部开发的分布式图数据库
,比如蚂蚁金服Geabase
、google开源的cayley
等等,这里提到了图数据库
和图数据引擎
,其实两个东西很相似但是却又有很明显的区别,图数据库
中会提供一些ACID
的支持,侧重点是查询,当然也能够分析,并且在应对一些小的数据规模也会非常好用;图数据引擎
侧重点是对关系的分析发现,查询速度会相对于图数据库
没有那么高的实时性,并且也一般不支持ACID
的操作
下面就进行搭建neo4j
环境搭建,使用的是社区版所有就只在单机上进行安装
安装环境准备
centos7
、neo4j-community-3.4.12-unix.tar.gz
、jdk8
neo4j下载地址
在安装之前需要将jdk安装完成
,安装jdk就不写了
$ tar -zxvf neo4j-community-3.4.12-unix.tar.gz
配置启动机器ip,我这里就配置成为我虚拟机的ip
配置文件conf/neo4j.conf
dbms.connectors.default_listen_address=192.168.56.22
上面安装完成之后可以关闭防火墙或者开放7474
、7687
两个端口
关闭防火墙
$ systemctl disable firewalld
$ systemctl stop firewalld
开启neo4j服务
$ ./bin/neo4j start #开启
$ ./bin/neo4j restart #重启
$ ./bin/neo4j stop #关闭
启动之后访问http://192.168.56.22:7474/

默认用户名和密码都为neo4j
输入之后,重新设置密码,neo4j就安装完成了,就能够进行使用了!后面再来说如何使用吧!单机版的安装非常简单的!
neo4j 图数据库安装及介绍的更多相关文章
- neo4j图数据库安装以及基本操作命令
neo4j图数据安装以及基本操作命令 neo4j安装配置使用, 安装环境:Ubuntu系统 jdk1.8 (neo4j 只支持jdk1.8以上版本) 下载 neo4j neo4j的下载window可以 ...
- Ubuntu16.04下Neo4j图数据库官网安装部署步骤(图文详解)(博主推荐)
不多说,直接上干货! 说在前面的话 首先,查看下你的操作系统的版本. root@zhouls-virtual-machine:~# cat /etc/issue Ubuntu LTS \n \l r ...
- Ubuntu14.04下Neo4j图数据库官网安装部署步骤(图文详解)(博主推荐)
不多说,直接上干货! 说在前面的话 首先,查看下你的操作系统的版本. root@zhouls-virtual-machine:~# cat /etc/issue Ubuntu 14.04.4 LTS ...
- Neo4j资料 Neo4j教程 Neo4j视频教程 Neo4j 图数据库视频教程
课程发布地址 地址: 腾讯课堂<Neo4j 图数据库视频教程> https://ke.qq.com/course/327374?tuin=442d3e14 作者 庞国明,<Neo4j ...
- Neo4j视频教程 Neo4j 图数据库视频教程
课程名称 课程发布地址 地址: 腾讯课堂<Neo4j 图数据库视频教程> https://ke.qq.com/course/327374?tuin=442d3e14 作者 庞国明,< ...
- Neo4j教程 Neo4j视频教程 Neo4j 图数据库视频教程
课程发布地址 地址: 腾讯课堂<Neo4j 图数据库视频教程> https://ke.qq.com/course/327374?tuin=442d3e14 作者 庞国明,<Neo4j ...
- Neo4j图数据库从入门到精通
目录 第一章:介绍 Neo4j是什么 Neo4j的特点 Neo4j的优点 第二章:安装 1.环境 2.下载 3.开启远程访问 4.启动 第三章:CQL 1.CQL简介 2.Neo4j CQL命令/条款 ...
- Neo4j图数据库从入门到精通(转)
add by zhj: 转载时,目录没整理好,还会跳转到原文 其实RDB也可以存储多对多的关系,使用的是中间表,GDB使用的是边,RDB中的实体存储在数据表,而GDB存储在节点.两者使用的底层技术不同 ...
- Neo4j图数据库管理系统开发笔记之一:Neo4j Java 工具包
1 应用开发概述 基于数据传输效率以及接口自定义等特殊性需求,我们暂时放弃使用Neo4j服务器版本,而是在Neo4j嵌入式版本的基础上进行一些封装性的开发.封装的重点,是解决Neo4j嵌入式版本Emb ...
随机推荐
- Python基础之语言简介
python是什么 Python 是一个高层次的结合了解释性.编译性.互动性和面向对象的脚本语言,其设计具有很强的可读性,相比其他语言经常使用英文关键字,其他语言的一些标点符号,它具有比其他语言更有特 ...
- Linux网络编程(2)
Preview 基于上一篇博客,本文将继续展开TCP面向连接的,客户端以及服务端各自需要进行的操作,我们按照真实TCP连接的顺序,分别阐述客户端socket(), connect()以及服务端sock ...
- 国外程序员整理的 PHP 资源大全
原文:http://blog.jobbole.com/82908/ ziadoz 在 Github 发起维护的一个 PHP 资源列表,内容包括:库.框架.模板.安全.代码分析.日志.第三方库.配置工具 ...
- thinkphp if便签的使用
<foreach name="list" item='v'> <tr> <td><img class="user" s ...
- thinkphp5 不使用form,用input+ajax异步上传图片
不支持$this->request->file()获取图片 后台接收文件请使用$_FILE 正文开始: HTML <div class="upload"> ...
- 吕建文 20199303《Linux内核原理与分析》第十二周作业
ShellShock攻击实验 2014年9月24日,Bash中发现了一个严重漏洞shellshock,该漏洞可用于许多系统,并且既可以远程也可以在本地触发.在本实验中,学生需要亲手重现攻击来理解该漏洞 ...
- (第七篇)系统编码、自启动配置、HOSTNAME、系统启动、定时任务、进程管理、硬盘及其分区
linux查看系统编码和修改系统编码的方法 查看支持的字符编码 使用locale命令, 如: root@ubuntu:/etc# locale 然后修改/etc/locale.conf,如改成中文编码 ...
- C++ Windows - How to get process path from its PID
出处 https://stackoverflow.com/questions/1933113/c-windows-how-to-get-process-path-from-its-pid 注意质疑(我 ...
- dispatch_async 的 block 中是否该使用_weak self
问题分析 我看过很多文章关于在dispatch_async的block里面使用_weak self, 但是让我疑惑的是,以下代码是否需要必须使用_weak self, 因为我也看到了很多观点说,在有些 ...
- python自动化测试开发利器ulipad最佳实践(可写python测试代码也可编写selenium、Appium等)...
介绍 UliPad是一个国人开发的python轻量级编辑器,导向和灵活的编程器.它如类浏览器,代码自动完成许多功能,如:HTML查看器,目录浏览器,向导等. 下载与安装 下载地址:https://py ...