睡觉前,突然想起来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 ), (B ), (C ), (D ),(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 |
+----------------------+
| () |
| () |
| () |
| () |
| () |
+----------------------+
5 rows available after 1385 ms, consumed after another 18 ms
如果是通过终端的方式,就更方便了。
直接在里面输入信息,就可以得到图形的结果了。
当然如果要深入下去,可做的事情还有很多。
领取专属 10元无门槛券
私享最新 技术干货