幾個重量級的NoSQL數據庫和管理工具(轉)

隨着互聯網中web 2.0網站的興起,傳統的關係數據庫在應付web 2.0網站,特別是超大規模和高併發的SNS類型的web 2.0純動態網站,已經顯得力不從心,暴露了不少難以克服的問題,例如: 
    
php

  • 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,也獲得了普遍認同。 
    
    下面介紹幾個重量級的數據庫以及相關的管理工具。 
    
1、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 
    
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將數據進行整合,並提供多種平臺上的數據查看及故障提醒功能。 
相關文章
相關標籤/搜索