经常使用Nosql数据库的客户端图形化工具

几个重量级的NoSQL数据库和管理工具php

随着互联网中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、最终一致性(相对于即时一致性,最终一致性容许有一个“不一致性窗口”,但能保证最终的客户都能看到最新的值)。git

Google 的BigTable与Amazon的Dynamo是很是成功的商业 NoSQL 实现。一些开源的 NoSQL 体系,如Facebook 的Cassandra, Apache 的HBase,也获得了普遍认同。

下面介绍几个重量级的数据库以及相关的管理工具。

1、Redis数据库和管理工具github

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数据库界面管理工具。web

  1. phpRedisAdminredis

    你没看错,这是phpRedisAdmin,不是phpMyAdmin,phpMyAdmin是一个PHP开发的MySQL数据库WEB管理工具,而phpRedisAdmin,从名字上就能够看出,它是一个PHP开发的Redis 数据库WEB管理工具。使用过phpMyAdmin的用户,对下面的这个界面也许会比较熟悉。目前phpRedisAdmin的功能还略显简陋,咱们但愿它能越作越好。shell

    演示地址:http://dubbelboer.com/phpRedisAdmin/?overview
    下载地址:https://github.com/ErikDubbelboer/phpRedisAdmin 数据库

  2. RedisAdminUIwindows

    这是一个很友好的Redis Web界面管理工具,基于.NET实现。浏览器

    项目地址:http://code.google.com/p/servicestack/wiki/ServiceStackRedis服务器

    演示地址:http://www.servicestack.net/RedisAdminUI/AjaxClient/#

    下载地址:http://servicestack.googlecode.com/files/RedisAdminUI.zip

2、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

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