随着互联网中web 2.0网站的兴起,传统的关系数据库在应付web 2.0网站,特别是超大规模和高并发的SNS类型的web 2.0纯动态网站,已经显得力不从心,暴露了很多难以克服的问题,例如:
- High performance - 对数据库高并发读写的需求
- Huge Storage - 对海量数据的高效率存储和访问的需求
- High Scalability && High Availability- 对数据库的高可扩展性和高可用性的需求
关系数据库在这些越来越多的应用场景下显得不那么合适,为了解决这类问题的NoSQL应运而生,并得到了非常迅速的发展。
NoSQL(=Not Only SQL),意即反SQL运动,指的是非关系型的数据库。它打破了长久以来关系型数据库与ACID理论大一统的局面。NoSQL 数据存储不需要固定的表结构,通常也不存在连接操作。在大数据存取上具备关系型数据库无法比拟的性能优势。
NoSQL的特点是非关系型、分布式、开源、可水平扩展、模式自由、支持replication、简单的API、最终一致性(相对于即时一致性,最终一致性允许有一个“不一致性窗口”,但能保证最终的客户都能看到最新的值)。
Google 的BigTable与Amazon的Dynamo是非常成功的商业 NoSQL 实现。一些开源的 NoSQL 体系,如Facebook 的Cassandra, Apache 的HBase,也得到了广泛认同。
下面介绍几个重量级的数据库以及相关的管理工具。
一、Redis数据库和管理工具
Redis是一个key-value类型的内存数据库,每一个key都与一个value关联,使得Redis与其他key-value数据库不同是因为在Redis中的每一个value都有一个类型(type),目前在Redis中支持5中数据类型:String、List、Set、ZSet和Hash。每一种类型决定了可以赋予其上的操作(这些操作成为命令command)。比如你可以使用LPUSH或RPUSH命令在O(1)时间对一个list添加一个元素,然后你可以使用LRANGE命令得到list中的一部分元素或使用LTRIM对该list进行trim操作。集合set操作也是很灵活的,你可以从set(无序的String的集合)中add或remove元素,还可以进行交集、合集和差集运算。每一个command都是服务端自动的操作。
Redis性能上和memcached一样快但提供了更多的特性。和memcached一样,Redis支持对key设置失效时间,因此当设定的时间过后会被自动删除。
下面介绍2个Redis数据库界面管理工具。
1. phpRedisAdmin
你没看错,这是phpRedisAdmin,不是phpMyAdmin,phpMyAdmin是一个PHP开发的MySQL数据库WEB管理工具,而phpRedisAdmin,从名字上就可以看出,它是一个PHP开发的Redis 数据库WEB管理工具。使用过phpMyAdmin的用户,对下面的这个界面也许会比较熟悉。目前phpRedisAdmin的功能还略显简陋,我们希望它能越做越好。
演示地址:http://dubbelboer.com/phpRedisAdmin/?overview
下载地址:https://github.com/ErikDubbelboer/phpRedisAdmin
2. RedisAdminUI
这是一个很友好的Redis Web界面管理工具,基于.NET实现。
项目地址:http://code.google.com/p/servicestack/wiki/ServiceStackRedis
演示地址:http://www.servicestack.net/RedisAdminUI/AjaxClient/#
下载地址:http://servicestack.googlecode.com/files/RedisAdminUI.zip
二、Cassandra数据库和管理工具
Cassandra是一个混合型的非关系的数据库,类似于Google的BigTable。其主要功能比Dynomite(分布式的Key-Value存储系统)更丰富,但支持度却不如文档存储MongoDB。
Cassandra的主要特点就是它不是一个数据库,而是由一堆数据库节点共同构成的一个分布式网络服务,对Cassandra 的一个写操作,会被复制到其他节点上去,对Cassandra的读操作,也会被路由到某个节点上面去读取。对于一个Cassandra群集来说,扩展性能是比较简单的事情,只管在群集里面添加节点就可以了。其他的特性包括分布式、基于column的结构化和高伸展性等。
Cassandra最初由Facebook开发,后转变成了开源项目。它是一个网络社交云计算方面理想的数据库。以Amazon专有的完全分布式的Dynamo为基础,结合了Google BigTable基于列族(Column Family)的数据模型。P2P去中心化的存储。很多方面都可以称之为Dynamo 2.0。
Cassandra Web界面管理工具:Cassandra Cluster Admin
Cassandra Cluster Admin是一个针对Cassandra的Web界面管理工具,其支持的功能如下:
- 密匙空间控制操作(add/edit/drop)
- 列家族控制(add/edit/truncate/drop)
- 列家族和超级列家族上的行控制(insert/edit/remove)
- 原始数据浏览器(最佳功能)
- 支持Cassandra 0.8+ atomic counters
- 支持对多Cassandra集群的管理
下载地址:https://github.com/sebgiroux/Cassandra-Cluster-Admin
三、MongoDB数据库和管理工具
MongoDB是一种面向集合(collection)的,模式自由的文档(document)数据库。
面向集合是说数据被分成集合的形式,每个集合在数据库中有惟一的名称,集合可以包含不限数目的文档。除了模式不是预先定义好的,集合与RDBMS中的表概念类似,虽然二者并不是完全对等。数据库和集合的创建是“lazy”的,即只有在第一个document被插入时集合和数据库才真正创建——这时在磁盘的文件系统里才能看见。
模式自由是说数据库不需要知道存放在集合中的文档的结构,完全可以在同一个集合中存放不同结构的文档,支持嵌入子文档。
MongoDB可运行在Linux、Windows和OS X平台,支持32位和64位应用,默认端口为27017。推荐运行在64位平台,因为MongoDB为了提高性能使用了内存映射文件进行数据管理,而在32位模式运行时支持的最大文件为2GB。
MongoDB查询速度比MySQL要快,因为它cache了尽可能多的数据到RAM中,即使是non-cached数据也非常快。当前MongoDB官方支持的客户端API语言就多达8种(C、C++、Java、Javascript、Perl、PHP、Python、Ruby),社区开发的客户端API还有Erlang、Go、Haskell等更多种。
下面介绍几种常用的MongoDB数据库界面管理工具。
1. Try MongoDB
不用安装就可以试用MongoDB?确实如此,和tryredis一样,Try MongoDB是一个基于web的shell模拟工具,可以让你在不用安装MongoDB的情况下试用MongoDB的各种功能。
2. Mongo3 – MongoDB 集群管理工具
从图上看,这个工具实在是太炫了!
3. futon4mongo
这个貌似是把CouchDB的RESTFul API搬移到MongoDB上实现的,而且官方页面上明确告知这是一个实验型产品,不要用在商业项目中。
4. phpMoAdmin
这是一个基于PHP的MongoDB管理工具,而且还支持界面主题订制。
5. MongoVUE
一个windows下的MongoDB客户端管理工具。
6. MongoHUB
Mac 下的 MongoDB 客户端,目前升级到2.3.0版本。
7. rock_mongo
它的描述是“Best PHP based MongoDB administration GUI tool”,最近在MongoDB 的讨论组上有很多人推荐此工具。
8. Server Density – MongoDB服务器监视工具
Server Density 是一个商业的监控服务提供商,其原理是在你要监控的机器上部署其监控代码,运行监控daemon,然后监控数据会传回SD的服务器,SD将数据进行整合,并提供多种平台上的数据查看及故障提醒功能。
分享到:
相关推荐
二.NoSQL数据库的产生 关系数据库面临挑战 关系数据库面对超大规模和高并发的SNS类型的web2.0纯动态网站显得力不从心,暴露了很多难以克服的问题 A 大数据发展 大规模数据集合,多重数据带来了许多挑战,尤其是...
2. 社区支持和成熟度:相较于历史悠久的SQL数据库,NoSQL数据库的社区支持和工具成熟度还有待提高。 3. 应用场景:NoSQL数据库广泛应用于互联网服务、社交网络、物联网、大数据分析等领域,例如Facebook的Tao系统、...
Nosql数据库论文的主要内容是介绍Nosql数据库的发展和应用,特别是分布式数据库的重要性和发展前景。文章首先介绍了传统关系型数据库的局限性,然后引入了Nosql数据库的概念和特点,接着介绍了分布式数据库的定义、...
《NoSQL数据库原理与应用案例教程》PPT课件(共9单元)第4章 HBase原理实现.pdf《NoSQL数据库原理与应用案例教程》PPT课件(共9单元)第4章 HBase原理实现.pdf《NoSQL数据库原理与应用案例教程》PPT课件(共9单元)第4章 ...
根据提供的信息,我们可以推断出该文档主要围绕“NoSQL数据库入门”这一主题展开,并且它是一本高清PDF格式的学习指导...通过对NoSQL数据库的深入理解和实践,开发者可以更好地利用这些工具来构建高效可靠的应用程序。
它可以帮助开发人员、架构师和数据库管理员更好地理解和应用NoSQL数据库技术来解决实际问题。 《NoSQL数据库技术与应用》这本书为我们提供了全面而深入的NoSQL数据库技术介绍,让我们了解了NoSQL数据库技术的定义、...
### NoSQL数据库之Redis数据库管理视频教程 #### NoSQL数据库简介 NoSQL(Not Only SQL)数据库是指非关系型数据库,它们与传统的关系型数据库在数据存储方式上有显著区别。NoSQL数据库通常支持灵活的数据模式,...
NoSQL数据库技术发展趋势可以分为以下几个方面: 1. 云数据库的发展:云数据库是当前数据库技术发展的主要趋势。根据预测,到2022年,75%的数据库都将在云上。云数据库的发展将带来更多的数据存储和处理能力,同时...
NoSQL数据库技术实战 数据库书籍!
nosql数据库的发展和应用研究
- **生态系统**:虽然NoSQL发展迅速,但在工具、社区支持和成熟度上可能不及SQL数据库。 综上所述,"NoSQL数据库入门思维导图"应包含了NoSQL的基本概念、主要类型、优缺点以及与MySQL的对比,帮助初学者理解并选择...
NoSQL(Not Only SQL)数据库是一种非关系型数据库管理系统,它提供了一种灵活的方式来存储和查询数据,特别适用于大数据和实时应用。与传统的SQL(结构化查询语言)数据库相比,NoSQL数据库具有更高的扩展性和可用...
- **大数据分析**:对于需要处理PB级数据的大数据分析应用,NoSQL数据库提供了高效的数据存储和查询能力。 - **高并发环境**:对于需要支持高并发读写操作的应用,如实时交易系统或在线游戏,NoSQL数据库能够提供...
应用篇对国内外几家知名公司在利用NoSQL数据库处理海量数据方面的实践做了阐述。 《大数据挑战与NoSQL数据库技术》对大数据时代面临的挑战,以及NoSQL数据库的基本知识做了清晰的阐述,有助于读者整理思路,了解...
NoSQL数据库的兴起主要有以下几个原因:首先,随着Web2.0时代的到来,关系型数据库在海量数据管理、数据高并发处理、高可扩展性和高可用性方面已无法满足需求。其次,"One size fits all"的模式不适用于截然不同的...
4. **Microsoft Access**:集成数据库和工具,主要用于小型项目,只支持Windows平台。 5. **SQLite**:轻量级的开源数据库,常用于嵌入式系统,如iPhone、Firefox和Skype,无需服务器即可运行。 6. **Cassandra**...
NoSQL数据库是一种非关系型的数据库,旨在解决传统关系数据库在应付Web 2.0网站,特别是超大规模和高并发的SNS类型的Web 2.0网站中的问题。NoSQL数据库的优点是可以处理超大量的数据,可以运行在便宜的PC服务器集群...
NoSQL数据库是指不遵循传统关系数据库管理系统(RDBMS)的数据库管理系统,主要特点是去中心化、可扩展性强、灵活的数据模型和高性能。 5.1 NoSQL简介 NoSQL数据库具有灵活的可扩展性、灵活的数据模型和与云计算...