参考文章:
ArangoDB原生多模型数据库(百科)
SQL/AQL-比较(官网)
简介:
ArangoDB是一个开源NoSQL数据库,官网:https://www.ArangoDB.org/.
ArangoDB支持灵活的数据模型,比如文档Document、图Graph以及键值对Key-Value存储。ArangoDB同时也是一个高性能的数据库,它使用类SQL查询或JavaScript扩展来构建高性能应用。
ArangoDB的特性
1)多模型数据库
可以灵活的使用键值对、文档、图及其组合构建你的数据模型。
2)查询便利
ArangoDB有类SQL的AQL查询语言,还可以通过REST方式进行查询。
3)可通过JavaScript进行扩展
无语言范围的限制,可以从前端到后端都使用同一种语言。
4)高性能
ArangoDB速度极快
5)Foxx - 构建自己的API
用JavaScript和ArangoDB构建应用,Foxx运行在DB内部,可快速访问数据。
6)空间利用率高
跟其它文档型数据库相比,ArangoDB占用的存储空间更少,因为ArangoDB是模式自由的元数据模式。
7)简单易用
ArangoDB可以在几秒内启动运行,同时可使用图形界面来管理你的ArangoDB。
8)多OS支持
ArangoDB支持Windows、Linux和OSX等操作系统,还支持树莓派。
9)开源且免费
ArangoDB开源免费,它采用了Apache 2许可证协议。
10)复制
ArangoDB支持主从集群
ArangoDB 数据库模型
Document 文档
您可以在文档中存储海量数据(文件大小默认最大值为32MB,但可以根据实际需要进行配置)。ArangoDB功能强大,应用范围广泛,可用于查询和处理诸如JOINs、辅助索引或ACID事物之类的文档。您还可以在JOIN连接上实现水平扩展。
key/value 键/值
每个document文档里均有唯一的键和与其对应的值(键/值对)。如果您在document文件中存储一个值,那么ArangoDB可用作经典的、高度可扩展的键/值对存储,例如用户在电子商务平台上将商品临时存储在购物车里或物联网应用程序中的传感数据等。
Graph 图
ArangoDB包含了graph图形存储的完整功能集。例如模式匹配、最短路径、完全遍历等。与当前许多主流的图形处理方法相比,ArangoDB可以快速执行图形查询。以下具体介绍如何实现这一改进:
当使用ArangoDB存储graph图时,一种特殊类型的文档将会被创建用来表示其边和顶点。这些文档包含指向所连接文档的_to和_from属性(地址属性),因此在查询过程中,可以通过关联上述属性创建和使用边缘索引,实现图的高性能处理和查询。
ArangoDB数据库的独特之处在于如下两个方面:其一是这些边和顶点都包含复杂数据(嵌套属性),其二是所有的graph函数均被深入集成至我们的查询语言AQL中。这两个特征使得ArangoDB在性能上能与其他graph数据库一较高低。此外,ArangoDB还支持对graph图搭建数据库集群。 [3]
python库
另外大家可以学习下python的aerospike库。
# import the module import aerospike # Configuration for the client config = { 'hosts': [('127.0.0.1', 3000)] } # Create a client and connect to the database client = aerospike.client(config).connect() # Records are addressable via a tuple of (namespace, set, key) key = ('test', 'demo', 'foo') # Write a record client.put(key, { 'name': 'John Doe', 'age': 32 }) # Read a record (key, metadata, record) = client.get(key) # Close Connection to Cluster client.close()
性能比较
见 NoSQL 基准对比 Aerospike、Cassandra、Couchbase 和 MongoDB
整体看来 如果是充分利用内存提速的话 要比mongodb好!