首页 > 代码库 > 图数据库cayley+mongo的起航之旅

图数据库cayley+mongo的起航之旅

图数据库,目前比较主流的可能是Neo4j以及cayley了。但是,由于Neo4j只有社区版是免费的,所以,选择cayley作为项目的最终选择!

 

今天就简单的介绍下,我的起航之旅。

 

1.安装go语言环境

去官方地址https://golang.org/dl/,下载稳定版本https://storage.googleapis.com/golang/go1.8.1.linux-amd64.tar.gz
解压,并将其配置到环境变量。

[root@localhost tkrobot]# tar -C /usr/local -xvf go1.8.1.linux-amd64.tar.gz

配置环境变量:

vim /etc/profile
export PATH=$JAVA_HOME/bin:$MONGODB_PATH/bin:/usr/local/go/bin:$PATH
export GOPATH=/usr/local/go

 

2.下载cayley的binary安装程序

去官方的下载网址https://github.com/cayleygraph/cayley/releases,选择下载稳定版的最新版本,我的环境是Redhat7,64位的linux环境。下载v.0.6.1的AMD64位linux版本。

https://github.com/cayleygraph/cayley/releases/download/v0.6.1/cayley_v0.6.1_linux_amd64.tar.gz

这个地址,若下载有问题,可以去这个地址下载.

cayley这个是二进制程序,解压后直接可以使用。

 

3.配置cayley

解压下载的cayley文件gz包,将里面的cayley.cfg.example拷贝到/etc/下,重命名为cayley.cfg

[root@localhost cayley_v0.6.1_linux_amd64]# cp cayley.cfg.example /etc/cayley.cfg

将/etc/cayley.cfg的内容修改为如下:

{
"database": "mongo",
"db_path": "10.90.7.10:27017",
"read_only": false,
"listen_host":"0.0.0.0",
"listen_port":"64100"
}

mongo数据库的安装过程,请参照我前面的博客spring4与mongodb的集成,还是很简单的。

 

4.加载数据到cayley,这个过程,cayley用到了cayley.cfg这个配置文件

[root@localhost cayley_v0.6.1_linux_amd64]# ./cayley load -quads data/testdata.nq --alsologtostderr=true
I0516 12:58:06.691039   30116 cayley.go:190] Cayley v0.6.1 built 2017-04-12T11:41:20-07:00
I0516 12:58:06.691323   30116 cayley.go:197] Setting GOMAXPROCS to 24
I0516 12:58:06.691337   30116 db.go:51] Opening quad store "mongo" at 10.90.7.10:27017
I0516 12:58:06.711636   30116 db.go:67] Opening replication method "single"

此时,连接到mongo数据库,可以看到,多了一个cayley的db。里面有3个collection。

> show dbs;
admin     0.000GB
cayley    0.000GB
local     0.000GB
robotkdb  0.000GB
> use cayley
switched to db cayley
> show collections
log
nodes
quads
> 

 

5.测试

命令行的方式操作cayley:

[root@localhost cayley_v0.6.1_linux_amd64]# ./cayley repl
creating new history file: ".cayley_history"
cayley> :a
Error: not a valid quad: incomplete N-Quad
cayley> 2+2

=> 4
-----------
1 Result
Elapsed time: 0.108118 ms

cayley> 2*9

=> 18
-----------
1 Result
Elapsed time: 0.106414 ms

cayley> graph.Vertex("<dani>").All()

****
id : <dani>
=> <nil>
-----------
2 Results
Elapsed time: 0.693895 ms

cayley> 

 

http的方式操作cayley:

[root@localhost cayley_v0.6.1_linux_amd64]# ./cayley http
Serving Gephi GraphStream at http://localhost:64100/gephi/gs
Cayley now listening on 0.0.0.0:64100[root@localhost cayley_v0.6.1_linux_amd64]# ./cayley http
Serving Gephi GraphStream at http://localhost:64100/gephi/gs
Cayley now listening on 0.0.0.0:64100

这个时候,会出现html的操作界面。我这里有截图,以示安装效果!

技术分享

 

下面这个图,是写四元组的示例:

技术分享

 

到此,cayley基于mongo的环境就算完成。至于cayley的具体如何使用,比如增删改查之类的,下一个博文进行介绍!

周末愉快!

 

图数据库cayley+mongo的起航之旅