neo4j 图数据库安装及介绍

一、neo4j图数据库介绍

  图数据库,顾名思义就是利用了“图的数据结构来作为数据存储逻辑体现的一种数据库”,所以要想学好图数据库当然需要了解一些关于图数据结构的算法!同样的作为图数据结构中很多常用的算法在图数据库中是默认提供支持的,对数据进行查询、计算的操作,比如常见的最短路径算法pagerank算法等等这些算法,都是图数据结构中常见的算法!当然了neo4j作为一个图数据库当然也会提供这些算法的实现,方便使用者对数据进行操作!

  

  那么图数据结构具体又包含些什么特点?

  

  首先图数据结构,最重要的就是,边(Edge)顶点(Node)方向(Direction)三个最基本的元素,数据主要是挂载在顶点上,那么方向主要用来表示顶点和顶点之间的关系网这样将我们需要分析的数据建模成为一个网状的模型,也就是所谓的,在某些场景中也会包含一些权重值,用于表示顶点顶点之间数据关系的重要性!

  

  下面就简单来进行模拟一个图的数据结构,徒手来画一个,更加直观

  

  如上图就是非常的一个简单的图结构,这里面包含着电影、观众、导演、作家,非常的直观,当然目前的这个图是非常简单的图,这种关系通过传统的关系型数据库同样是可以进行描述的,但是关系型数据库在处理关系网的时候处理能力是相对弱的,而且比起图数据库来说会显得麻烦复杂同时效率低下;比如我在在非常大的一个图中需要寻找节点之间最短路径,其实这种场景是非常常见的,比如QQ共同好友这些功能就是利用了你好友列表中的关系网,同时它能够给你推送你的其他好友中包含的好友,而且这种好友基本上你都是认识的,这就是典型的通过关系网进行分析得出的结果,具体的分析当然看业务,而且运用的场景也会非常多!

  

  上面这些基本上就算是基本的介绍,具体的使用场景和一些细节后面会专门在写相关的点的文章再来回顾!

  

  那么说了这么多,发现我们的真实数据实际上是可以在顶点上上的,那么上的数据当然是要和顶点之间建立某种关系联系的数据,上面的模型其实只是简单的数据模型,那么复杂的数据模型当中,的属性是非常多的,电影的属性也同样是非常多的,那么这些定点自然也就要承载更多的数据,所以顶点都后挂载属性,这样建立出来的数据模型就会更加完整,比如他有电话、家庭地址、工作等等,电影同样也会有很多属性,这样的话,自然而然通过对关系网的分析,其实会得到很多有用的价值,比如给他推荐电影推荐哪里的电影院合适等等问题!

  

  接下来再来说说关系型数据库中会存在唯一键,同样图数据库中也存在唯一键顶点都存在

  

  根据上面所说的这些信息可以基本分析出来,图数据库中的数据模型基本上就是下面内容

  

Edge:[Id,Object]

Node:[Id,Object]

  基本上就是上面的这种模型,一个图就是由所有的顶点所有的边构成的,那么现在暂时还不去管图数据库在底层到底是怎么存储数据的,其实这里可以提一下,其实就是把边和顶点进行拆分,然后分别存储,但是具体不同的图数据库实现是不一样的,上面的Object代表的就是不断抽象出来的属性,所以,一个顶点和一条实际上是可以存储很多数据的

上面这些内容基本上就说到这,后面在使用的过程中会有更多的细节,同时会有更加深入的了解,下面就是先把neo4j环境先弄起来

二、neo4j环境搭建

  neo4j分为社区版企业版企业版为收费版本,主要是支持分布式,因为单节点的处理能力是有限的,但是收费非常高,所以在没有资源的情况下选择使用社区版本,单机进行处理图关系,当然对于大规模图处理还有其他的图数据库或者图数据引擎,比如Spark GraphxTian等等,还有很多,有些大公司内部估计还有自己的内部开发的分布式图数据库,比如蚂蚁金服Geabase、google开源的cayley等等,这里提到了图数据库图数据引擎,其实两个东西很相似但是却又有很明显的区别,图数据库中会提供一些ACID的支持,侧重点是查询,当然也能够分析,并且在应对一些小的数据规模也会非常好用;图数据引擎侧重点是对关系的分析发现,查询速度会相对于图数据库没有那么高的实时性,并且也一般不支持ACID的操作

  

  下面就进行搭建neo4j环境搭建,使用的是社区版所有就只在单机上进行安装

  

  安装环境准备

  

  centos7neo4j-community-3.4.12-unix.tar.gzjdk8

  

  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

上面安装完成之后可以关闭防火墙或者开放74747687两个端口

关闭防火墙

$ 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 图数据库安装及介绍的更多相关文章

  1. neo4j图数据库安装以及基本操作命令

    neo4j图数据安装以及基本操作命令 neo4j安装配置使用, 安装环境:Ubuntu系统 jdk1.8 (neo4j 只支持jdk1.8以上版本) 下载 neo4j neo4j的下载window可以 ...

  2. Ubuntu16.04下Neo4j图数据库官网安装部署步骤(图文详解)(博主推荐)

    不多说,直接上干货! 说在前面的话  首先,查看下你的操作系统的版本. root@zhouls-virtual-machine:~# cat /etc/issue Ubuntu LTS \n \l r ...

  3. Ubuntu14.04下Neo4j图数据库官网安装部署步骤(图文详解)(博主推荐)

    不多说,直接上干货! 说在前面的话  首先,查看下你的操作系统的版本. root@zhouls-virtual-machine:~# cat /etc/issue Ubuntu 14.04.4 LTS ...

  4. Neo4j资料 Neo4j教程 Neo4j视频教程 Neo4j 图数据库视频教程

    课程发布地址 地址: 腾讯课堂<Neo4j 图数据库视频教程> https://ke.qq.com/course/327374?tuin=442d3e14 作者 庞国明,<Neo4j ...

  5. Neo4j视频教程 Neo4j 图数据库视频教程

    课程名称 课程发布地址 地址: 腾讯课堂<Neo4j 图数据库视频教程> https://ke.qq.com/course/327374?tuin=442d3e14 作者 庞国明,< ...

  6. Neo4j教程 Neo4j视频教程 Neo4j 图数据库视频教程

    课程发布地址 地址: 腾讯课堂<Neo4j 图数据库视频教程> https://ke.qq.com/course/327374?tuin=442d3e14 作者 庞国明,<Neo4j ...

  7. Neo4j图数据库从入门到精通

    目录 第一章:介绍 Neo4j是什么 Neo4j的特点 Neo4j的优点 第二章:安装 1.环境 2.下载 3.开启远程访问 4.启动 第三章:CQL 1.CQL简介 2.Neo4j CQL命令/条款 ...

  8. Neo4j图数据库从入门到精通(转)

    add by zhj: 转载时,目录没整理好,还会跳转到原文 其实RDB也可以存储多对多的关系,使用的是中间表,GDB使用的是边,RDB中的实体存储在数据表,而GDB存储在节点.两者使用的底层技术不同 ...

  9. Neo4j图数据库管理系统开发笔记之一:Neo4j Java 工具包

    1 应用开发概述 基于数据传输效率以及接口自定义等特殊性需求,我们暂时放弃使用Neo4j服务器版本,而是在Neo4j嵌入式版本的基础上进行一些封装性的开发.封装的重点,是解决Neo4j嵌入式版本Emb ...

随机推荐

  1. 一年时间,Pipenv就成为Python官方推荐的顶级工具?

    Pipenv是Kenneth Reitz在一年多前创建的“面向程序员的Python开发工作流程”,现在已成为管理软件包依赖关系的Python官方推荐资源. Python软件包安装管理的简要历史 为了正 ...

  2. 深入理解kestrel的应用

    1 前言 之所以写本文章,是因为在我停止维护多年前写的NetworkSocket组件两年多来,还是有一些开发者在关注这个项目,我希望有类似需求的开发者明白为什么要停止更新,可以使用什么更好的方式来替换 ...

  3. beego rel/reverse

    用户可以发布多个文章 对用户来说是一对多 对文章来说是多对一 用户是主表 文章是用户的从表 rel用在从表中,给主表结构体设置主键,也就是文章表对应用户表的外键 reverse用在主表中,指定主表与从 ...

  4. Oracle 11g 精简客户端

    通常开发人员会装上一个 oracle客户端,但一般不会在自己的机器上安装Oracle database Oracle 客户端安装体积很大,但是装上去了基本上就用2个功能:TNS配置服务名和sqlplu ...

  5. docker配置dns与容器的访问控制(6)

    Docker 没有为每个容器专门定制镜像,那么怎么自定义配置容器的主机名和DNS配置?秘诀就是它利用虚拟文件来挂载到容器的3个相关的配置文件. 进入容器内使用mount命令可以看到挂载信息,这种机制可 ...

  6. js 函数的多图片懒加载(lazy) 带插件版完整解析

    前言:         本人纯小白一个,有很多地方理解的没有各位大牛那么透彻,如有错误,请各位大牛指出斧正!小弟感激不尽.         本篇文章为您分析一下原生JS实现图片懒加载效果 页面需求 1 ...

  7. JS实现元素的全屏、退出全屏功能

     在实际开发中,我们很可能需要实现某一元素的全屏和退出全屏功能,如canvas.所幸的是,js提供了相关api用来处理这一问题,只需简单的调用requestFullScreen.exitFullScr ...

  8. 网速慢?不!可能是DNS出了问题! 公共DNS优选之 BAT 百度、腾讯、阿里、谷歌DNS哪个更快?

    如果一下还是解决不了你的问题请这边走 首先是Google的DNS: 8.8.8.8 丢包严重 PASS但是扶墙的时候是必备的,如果有扶墙的需求的话可以备用. 二.百度DNS 180.76.76.76 ...

  9. CF思维联系–CodeForces -224C - Bracket Sequence

    ACM思维题训练集合 A bracket sequence is a string, containing only characters "(", ")", ...

  10. codeforce 272B Dima and Sequence

    B. Dima and Sequence Dima got into number sequences. Now he's got sequence a1, a2, ..., an, consisti ...