图数据库,目前比较主流的可能是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..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":""
}

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

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

[root@localhost cayley_v0..1_linux_amd64]# ./cayley load -quads data/testdata.nq --alsologtostderr=true
I0516 ::06.691039 cayley.go:] Cayley v0.6.1 built --12T11::-:
I0516 ::06.691323 cayley.go:] Setting GOMAXPROCS to
I0516 ::06.691337 db.go:] Opening quad store "mongo" at 10.90.7.10:
I0516 ::06.711636 db.go:] Opening replication method "single"

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

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

5.测试

命令行的方式操作cayley:

[root@localhost cayley_v0..1_linux_amd64]# ./cayley repl
creating new history file: ".cayley_history"
cayley> :a
Error: not a valid quad: incomplete N-Quad
cayley> + =>
-----------
Result
Elapsed time: 0.108118 ms cayley> * =>
-----------
Result
Elapsed time: 0.106414 ms cayley> graph.Vertex("<dani>").All() ****
id : <dani>
=> <nil>
-----------
Results
Elapsed time: 0.693895 ms cayley>

http的方式操作cayley:

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

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

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

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

周末愉快!

图数据库cayley+mongo的起航之旅的更多相关文章

  1. Cayley图数据库的简介及使用

    图数据库   在如今数据库群雄逐鹿的时代中,非关系型数据库(NoSQL)已经占据了半壁江山,而图数据库(Graph Database)更是攻城略地,成为其中的佼佼者.   所谓图数据库,它应用图理论( ...

  2. Google Cayley图数据库使用方法

    最近在用Golang做流程引擎,对于流程图的存储,我看到了Google的Cayley图数据库,感觉它可能会比较适合我的应用,于是便拿来用了用. 项目地址在这里:https://github.com/g ...

  3. Cayley图数据库的可视化(Visualize)

    引入   在文章Cayley图数据库的简介及使用中,我们已经了解了Cayley图数据库的安装.数据导入以及进行查询等.   Cayley图数据库是Google开发的开源图数据库,虽然功能还没有Neo4 ...

  4. COSCon'19 | 如何设计新一代的图数据库 Nebula

    11 月 2 号 - 11 月 3 号,以"大爱无疆,开源无界"为主题的 2019 中国开源年会(COSCon'19)正式启动,大会以开源治理.国际接轨.社区发展和开源项目为切入点 ...

  5. neo4j 图数据库安装及介绍

    neo4j 图数据库安装及介绍 一.neo4j图数据库介绍 图数据库,顾名思义就是利用了"图的数据结构来作为数据存储逻辑体现的一种数据库",所以要想学好图数据库当然需要了解一些关于 ...

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

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

  7. 图数据库(graph database)资料收集和解析 - daily

    Motivation 图数据库中的高科技和高安全性中引用了一个关于图数据库(graph database)的应用前景的乐观估计: 预计到2017年,图数据库产业在数据库市场的份额将从2个百分点增长到2 ...

  8. Neo4j图数据库管理系统开发笔记之三:构建安全的RMI Service(Server)

    RMI Server(服务端)主要包括以下功能:远程用户权限验证管理.远程服务接口实现类.Neo4j实体映射转换等.项目目录结构如下图所示: 3.2.1 远程用户权限验证管理 3.2.1.1 用户权限 ...

  9. Neo4j图数据库管理系统开发笔记之二:管理系统Server端界面一览

    最近在neo4j java api和rmi的基础上,设计了一套neo4j管理工具,分为server端和client端,中间用rmi进行通信.基本功能包括图数据库基本信息维护管理(创建.编辑.删除.统计 ...

随机推荐

  1. python实现的简单点对点(p2p)聊天

    点对点聊天首先是基于多线程的网络编程,其次就是将每一个连接都保存为一个具有独一属性的对象并添加到连接列表中,对于每一个连接对象发送过来的信息必须要包含主要的三项内容(from,to,messages) ...

  2. css3渐变 两边透明中间高亮

    颜色自己可以调节 如图: 采集器管理下面的那条线就是 css代码: .linear{            width:100%;            height:2px;            ...

  3. Semaphore计数信号量

    ExecutorService exec = Executors.newCachedThreadPool(); final Semaphore semp = new Semaphore(5); for ...

  4. linux 编译链接问题

    -rpath和-rpath-link 假设有3个文件,在同一目录下,有这样的依赖关系 test->liba.so->libd.so 如果编译test的时候这样写 gcc test.c –l ...

  5. 大数据-04-Hbase入门

    本文主要来自于 http://dblab.xmu.edu.cn/blog/install-hbase/ 谢谢原作者 本指南介绍了HBase,并详细指引读者安装HBase. 前面第二章学习指南已经指导大 ...

  6. 【PPT】 Least squares temporal difference learning

    最小二次方时序差分学习 原文地址: https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd= ...

  7. Android.mk使用第三方库方法

    /********************************************************************** * Android.mk使用第三方库方法 * 说明: * ...

  8. Linux不在显示器上方总是显示企鹅

    /********************************************************************************* * Linux不在显示器上方总是显 ...

  9. JS书写规范

    1.js代码是由语句组成的,每一条语句以分号结尾: 语句是有关键字,元素符,表达式组成的:2.js代码严格区分大小写3.所有的标点符号都是英文的4.//表示单行注释,/* */表示多行注释

  10. Unity反射探针用法教程

    Unity 3D反射探针 本文提供全流程,中文翻译. Chinar 坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) Chinar -- 心分享.心 ...