文档章节

几个重量级的NoSQL数据库和管理工具(转)

Picasso
 Picasso
发布于 2011/09/12 15:42
字数 1976
阅读 577
收藏 10

随着互联网中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将数据进行整合,并提供多种平台上的数据查看及故障提醒功能。 

本文转载自:http://xiajs.iteye.com/blog/1163646

Picasso
粉丝 4
博文 46
码字总数 7821
作品 0
长春
程序员
私信 提问
加载中

评论(1)

谢小呆
谢小呆
一个图都没有~~
聚焦NOSQL数据库实战分享

NOSQL正在被更多的公司所接受,在选型时如何考虑关系型数据库和NOSQL数据库的差异?在迁移及NOSQL应用过程中有哪些利弊、陷阱与挑战?NOSQL如何运用于大型管理系统的开发和使用,人人游戏如何...

CSDN云计算俱乐部
2013/08/16
724
1
关于 NoSQL 数据库你应该了解的 10 件事

四分之一个世纪以来,关系型数据库(RDBMS)一直是主流数据库模型。但是现在非关系型数据库,“云”或者“NoSQL”数据库,正在作为一种替代数据库模型获得越来越多的占有率。本文中我们将关注...

YuanyuanL
2015/12/02
9.4K
10
企业竞争加剧,数据治理和NoSQL大放异彩

  【IT168 评论】数字化转型是现代企业的大趋势,开发独特的应用程序已经成为推动业务向前发展的核心了。Couchbase 数字化创新调查针对美国、英国、法国和德国450家数字化转型企业进行了调...

it168网站
2018/05/31
0
0
为什么初创公司适合/不适合用NoSQL?

本文转自:http://blog.nosqlfan.com/html/2843.html 这标题乍一看让人有点懵,实际上是两个相反的问题: 为什么初创公司适合用NoSQL? 为什么初创公司不适合用NoSQL? 写这篇文章是因为读到了...

红薯
2011/08/17
1K
5
NoSQL 再次败北——我坚持使用 SQL 的原因

【编者按】NoSQL拥有可扩展性和超高吞吐量的能力,然而这却没有发挥实际的优势,同时它不具备关系数据库所有的智能操作,虽然具有无模式存储的优势,却无形中增加了代码的复杂度。更多的应用...

oschina
2014/08/03
9.9K
48

没有更多内容

加载失败,请刷新页面

加载更多

IT兄弟连 HTML5教程 HTML5的基本语法 简单HTML实例制作

现在学习HTML5的方式 目前HTML还处于HTML4与HTML5之间的过渡使用阶段。移动端的Web界面开发已经全面使用HTML5的技术,而在PC端由于用户升级浏览器周期较长,面临着页面的兼容性问题,以及开发...

老码农的一亩三分地
14分钟前
2
0
[Android] 【每日更新书源】「阅读」APP -100+ 精品书源一键导入!每天自动更新最新书源!

我特地写了个爬虫爬取书源,每天自动更新书源(URL是固定的)!大家也可以定期导入一下! 放心!导入时会自动去除重复书源的! 前段时间我发过一个书源大礼包的帖子,不过现在已经无法编辑修...

xiaogg
18分钟前
5
0
Qt编写自定义控件58-直方对称图

一、前言 本控件也非原创控件,是参考网上的代码而来的,对称顾名思义就是将画布平均成上下两部分,将设置的值自动按照画布高度的一半作为参照高度进行绘制,然后增加动态过渡效果,有点类似...

飞扬青云
28分钟前
6
0
Java中创建对象的5种方法

将会列举5种方法去创建 Java 对象,以及他们如何与构造函数交互,并且会有介绍如何去使用这些方法的示例。 作为一个 Java 开发人员,我们每天都会创建大量的 Java 对象,但是我们通常会使用依...

liululee
31分钟前
5
0
Java描述设计模式(11):观察者模式

本文源码:GitHub·点这里 || GitEE·点这里 一、观察者模式 1、概念描述 观察者模式是对象的行为模式,又叫发布-订阅(Publish/Subscribe)模式。观察者模式定义了一种一对多的依赖关系,让多...

知了一笑
今天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部