图数据库,目前比较主流的可能是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. 16 多校8 Rikka with Parenthesis II

    As we know, Rikka is poor at math. Yuta is worrying about this situation, so he gives Rikka some mat ...

  2. react-navigation 使用详解(转载)

    上篇博客和大家分享了关于React Native jsBundle预加载,界面启动优化的内容,详情可点击: 基于最新版本React Native实现JsBundle预加载,界面秒开优化 一.开源库介绍 ...

  3. Sping boot 之 @Value("${xxx}") 注解获取配置文件内容

    1.注解方式读取 1-1.@PropertySource配置文件路径设置,在类上添加注解,如果在默认路径下可以不添加该注解. 需要用@PropertySource的有: 例如非application. ...

  4. Codeforces483B. Friends and Presents(二分+容斥原理)

    题目链接:传送门 题目: B. Friends and Presents time limit per test second memory limit per test megabytes inpu ...

  5. MySql查询出来的值为 boolean类型的值

    解决方案: status_flag * 1 as status_flag 乘以1之后就不会是boolean类型的值了

  6. java-多态中成员访问特点-父类引用指向子类对象

    多态前提: - 要有继承关系. - 要有方法重写. - 要有父类引用指向子类对象. 1.成员变量:编译看左边(父类),运行看左边(父类) 2.成员方法:编译看左边(父类),运行看右边(子类),动态绑定 ...

  7. C++学习(八)(C语言部分)之 图形库

    有关图形库的学习笔记 1.安装 ww.easys.cn 2.创建win32控制台应用程序 .cpp文件(图形库必须创建cpp文件) *重点 3.安装好后 重启一下vs 图形库 是一些函数的集合 作用是 ...

  8. C++ 作业(哈夫曼树)

    #include<bits/stdc++.h> #define fi first #define se second #define int long long using namespa ...

  9. doc 常用命令

    ★ 查看java环境变量 echo %JAVA_HOME% echo %PATH% echo %CLASSPATH%

  10. 【BZOJ3992】【SDOI2015】序列统计

    数论劲啊 原题: 小C有一个集合S,里面的元素都是小于M的非负整数.他用程序编写了一个数列生成器,可以生成一个长度为N的数列,数列中的每个数都属于集合S. 小C用这个生成器生成了许多这样的数列.但是小 ...