本帖最后由 pig2 于 2014-3-4 11:20 编辑
阅读本文时可以带着下面几个问题: 1、 NoSQL数据库都有哪些? 2、 什么是ArangoDB? 3、 如何选择NoSQL?
一、NoSQL数据库产品。 Cassandra Facebook需要一个更快、更廉价的方式处理数以亿计的状态更新。因此,他们启动了这一项目,并最终将其移植到了Apache上,这就是Cassandra。在Apache上,它能够得到许多社区的帮助。目前Cassandra已经不再仅仅用于Facebook,许多为该项目工作的程序员来自其他公司。如今DataStax.com公司正致力于为Cassandra提供商业支持。
CouchDB CouchDB被用于存储文档,最大的变化在于查询。取代一些基本查询结构的是,CouchDB通过两种功能来搜索文档,以导航并减少数据。一个编排文档格式,另一个确定包括哪些文档。一名清楚存储程序的、熟练的甲骨文数据库操作人员会做同样的事情。但是,导航和减少结构将让基层程序员大开眼界。目前,AJAX开发人员已经能够编写出相当复杂的搜索程序,这些程序可以写入一些更为复杂的逻辑。
MongoDB MongoDB是一个关于JavaScript如何掌握世界的典型。程序获取格式化为JSON格式的数据,然后将它们存储起来。查询是JavaScript的基础功能,这与使用浏览器控制台没有太大的差别,只是简化了一些东西。最大的区别是,MongoDB会为你的数据库创建索引,如果索引被正确地创建,那么反馈查询结果的速度将会很快。另外,该数据库可以与大量的其他工具协同工作。
Redis 与CouchDB和MongoDB一样,Redis用于存储文档和由键值对组织的文件。与其他的NoSQL数据库不同的是,其存储的不仅仅是字符串或是数字,其中还包括分类和未分类的字符串集合作为与键关联的值。这一特点使其可以为用户提供更为复杂的集合操作。用户不再需要下载数据计算交集,因为Redis能够在服务器上做这一工作。
Riak Riak是设计最为精巧的数据存储,其拥有其他产品的绝大多数功能,并且对副本有着更多的控制。尽管基本结构存储着多对键值,但是恢复它们和确保它们的一致性的选项很多。比如写入操作包括了要求Riak确认数据何时被成功传输到集群其他机器上的参数。如果你不希望仅信任一台机器,在发送确认信息前,你可以要求其等待,直至两台、三台或是54台机器写入了数据。
二、我们应该怎样选择NoSQL数据库
关于如何选择NoSQL数据库这一问题并不好回答。许多IT部门会随便选一个,有时候他们选择的数据库并不能满足他们的需求。由于优秀的开发人员希望能够平衡项目的优势、商业支持的可获得性以及文档质量,因此选择一个最佳数据库是十分困难的。
这些数据库都存储了大堆的键和值,但是真正的问题是如何在服务器中合理分配负载,如何将变更传递给它们。另一个问题是托管。云服务能够替你完成所有的维护,这一点非常具有吸引力。与SQL数据库相比,NoSQL数据库的数据交换更为困难。目前全球还没有一个标准的查询语言,也没有一个像JDBC一样的大型虚拟层。尽管如此,NoSQL数据库已经对我们具备了足够的吸引力。
三、ArangoDB简介 ArangoDB支持灵活的数据模型,比如文档Document、图Graph以及键值对Key-Value存储。ArangoDB同时也是一个高性能的数据库,它使用类SQL查询或JavaScript扩展来构建高性能应用。 ArangoDB值得称赞的一点,可以在树莓派上运行ArangoDB 1.4版。 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程序介绍 1、arangod 它是ArangoDB数据库的守护程序,运行后就是ArangoDB数据库服务器的守护进程。
2、arangosh
ArangoDB的Shell环境。
3、arangoimp
ArangoDB数据库导入工具
4、arangodump
ArangoDB数据库的备份工具
5、arangorestore
ArangoDB数据库的恢复工具
6、foxx-manager
一个Shell脚本,管理Foxx应用程序
7、arango-dfdb
ArangoDB的数据文件调试器
8、arangob
ArangoDB的测试和评分工具,主要用于ArangoDB的开发和测试。
|