初识Neo4j

睡觉前,突然想起来Neo4j这个数据库,以前认为是一个相当神秘的数据库,一听是图数据库,以为是存储图片的。一想不对啊,存储图片不是数据库层面建议的,所以自己理了下,也算是自己说服自己吧。

Neo4j是开源的,分了多个版本,其中企业版是基于AGPL协议的。

也就意味着你需要扩展,需要补充一个协议。

Neo4j的版本也分了不同的平台,目前较新的版本是3.3,最新的3.4

Neo4j比较贴心的是下载的时候会提示你注册一个用户,注册之后,会给你发送一个电子版的pdf文档。有一些详细的技术细节。

下载Neo4j其实会很多的选择,有很多的组件可下载。其中Cypher学习Neo4j的重中之重。限于时间关系,我就学了几个花拳绣腿。

因为Neo4j是基于Java,所以使用Java来做数据的处理还是很方便的,当然他也支持不同平台的语言和技术。

我们来简单实践一下。

首先从官网下载Neo4j,安装包大概是80M左右。

因为Neo4j是基于Java开发,我选择的版本是3.3,能够接受的最低版本是1.8了。所以在安装配置的时候我们需要提前准备好Java.

然后在bin目录下启动Neo4j,有两种方式,一种是使用console选项,一种是start基于后台模式。

启动的日志如下:

[root@dev01 bin]# ./neo4j console

Active database: graph.db

Directories in use:

home: /root/neo4j/neo4j-community-3.3.2

config: /root/neo4j/neo4j-community-3.3.2/conf

logs: /root/neo4j/neo4j-community-3.3.2/logs

plugins: /root/neo4j/neo4j-community-3.3.2/plugins

import: /root/neo4j/neo4j-community-3.3.2/import

data: /root/neo4j/neo4j-community-3.3.2/data

certificates: /root/neo4j/neo4j-community-3.3.2/certificates

run: /root/neo4j/neo4j-community-3.3.2/run

Starting Neo4j.

WARNING: Max 1024 open files allowed, minimum of 40000 recommended. See the Neo4j manual.

2018-01-23 15:12:55.972+0000 INFO ======== Neo4j 3.3.2 ========

2018-01-23 15:12:56.010+0000 INFO Starting...

2018-01-23 15:12:57.425+0000 INFO Bolt enabled on 127.0.0.1:7687.

2018-01-23 15:13:01.078+0000 INFO Started.

2018-01-23 15:13:02.240+0000 INFO Remote interface available at http://localhost:7474/

我们可以使用提供的url来连接,默认的密码是neo4j,第一次登录之后会提示你修改密码。

然后我们可以基于cypher-shell的命令行方式来学习neo4j或者图形的方式都可以。

如果要连接到Neo4j,使用cypher-shell的方式如下:

[root@dev01 bin]# ./cypher-shell 
username: neo4j
password: *******
Connected to Neo4j 3.3.2 at bolt://localhost:7687 as user neo4j.
Type :help for a list of available commands or :exit to exit the shell.
Note that Cypher queries must end with a semicolon.

我们创建数据

neo4j> CREATE (A {id:1,name:'A'}), (B {id:2,name:'B'}), (C {id:3,name:'C'}), (D {id:4,name:'D'}),(E {id:5,name:'E'}),(A)-[:Son]->(B),(A)-[:Son]->(C),(B)-[:Son]->(D),(C)-[:Son]->(E); 
0 rows available after 226 ms, consumed after another 0 ms
Added 5 nodes, Created 4 relationships, Set 10 properties

遍历,得到关系

neo4j> START n=node(*) RETURN n;
+----------------------+
| n                    |
+----------------------+
| ({name: "A", id: 1}) |
| ({name: "B", id: 2}) |
| ({name: "C", id: 3}) |
| ({name: "D", id: 4}) |
| ({name: "E", id: 5}) |
+----------------------+
5 rows available after 1385 ms, consumed after another 18 ms
neo4j>

如果是通过终端的方式,就更方便了。

直接在里面输入信息,就可以得到图形的结果了。

当然如果要深入下去,可做的事情还有很多。

原文发布于微信公众号 - 杨建荣的学习笔记(jianrong-notes)

原文发表时间:2018-01-23

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏架构师之旅

《Spring敲门砖之基础教程第一季》 第一章(2)解读Spring Framework

系统架构 一个成功的项目离不开一个好的架构,一个好的架构自然需要一位好的设计师, Rod Johnson正是Spring的前生总架构设计师,那...

21060
来自专栏java思维导图

微服务架构的服务与发现-Spring Cloud

简单来说,服务化的核心就是将传统的一站式应用根据业务拆分成一个一个的服务,而微服务在这个基础上要更彻底地去耦合(不再共享DB、KV,去掉重量级ESB),并且强调...

12250
来自专栏闻道于事

Spring技术内幕:设计理念和整体架构概述

32630
来自专栏匠心独运的博客

实践Jenkins集成Cobertura自动化构建SpringBoot工程

文章摘要:追求代码质量一直都是优秀程序员对自己的目标,那么有什么好方法能够实现这个目标?

38430
来自专栏Java职业技术分享

一个老程序员是如何手写Spring MVC的?「附代码」

人见人爱的Spring已然不仅仅只是一个框架了。如今,Spring已然成为了一个生态。但深入了解Spring的却寥寥无几。这里,我带大家一起来看看,我是如何手写...

12900
来自专栏Java学习123

一句话概括下spring框架及spring cloud框架主要组件

32770
来自专栏吴生的专栏

SpringCloud2.0 Eureka集群 高可用的认证服务实现与搭建

SpringCloud-2.0.2.RELEASE Eureka认证后,服务注册失败问题。

48250
来自专栏区块链

最好用的开源Web漏洞扫描工具梳理

来自FreeBuf.COM *参考来源:geekflare,FB小编柚子编译 链接:www.freebuf.com/articles/web/155209.ht...

5.9K90
来自专栏散尽浮华

shell脚本中打印所有匹配某些关键字符的行或前后各N行

在日常运维中,经常需要监控某个进程,并打印某个进程的监控结果,通常需要打印匹配某个结果的行以及其前后各N行。

11910
来自专栏运维一切

xfs的故障记录

##前言 我使用xfs比较二一点,我是在ceph的rbd上直接格式化的xfs,所以ceph上的数据一般不会丢失,不过我的xfs是在docker内部进行的挂载,使...

29130

扫码关注云+社区

领取腾讯云代金券