Nosql and Mongodb 介紹

Nosql興起的背景:

    1)web2.0興起(高交互性),傳統的關係型數據庫爲了保證“通用性”的設計而帶來    了功能複雜,性能開銷大,和價格昂貴的問題。

    2)避免不必要的複雜性

    3)更高的吞吐量和高併發

    4)在商用硬件上的水平擴展能力

    5)Nosql實現大表自動切割,更有利於支持分佈式處理

    6)在性能和安全方面做了折中(有時不需要sql的很高的安全性)

    7)雲計算的需求(從中心模式轉到分佈模式)

各種主流Nosql數據庫:

                    1)memcached數據庫:memcached數據庫的成功,帶動了Nosql運動的熱潮

                特點:

                  1)它是一個存儲鍵值對兒的hashmap

                             2)高性能的分佈式內存緩存服務器,常駐內存,用於動態web應用,以減輕

                              數據庫負載

                             3)客戶端通過memcached協議與守護進程(daemon)通信

                             4)缺乏認證與安全控制(所以應該部署於防火牆的內部)

                              5 )基於libevent的事件處理機制(http://baike.haosou.com/doc/1037929-                         1097798.html

                              6  )不互相通信的分佈式(服務器之間不互相通信)

              2)redis數據庫:是一個key-value存儲系統,和memcached類似

         1 )運行速度異常快

        2)數據都緩存在內存中,它是有硬盤支持的內存數據庫

        3)支持Master-slave複製(主從複製)

        4)支持多種數據類型 如string(字符串),list(鏈表),set(集合),zset(有序        集合)

        5)支持pop/push機制,允許用戶實現消息機制

    3)neo4j數據庫:它是基於關係的圖型數據庫

                    1)訪問協議:http/rest

                             2)可獨立使用,或嵌入到java程序中使用

                             3)圖型的節點和邊都可以帶有元數據

                             4)使用多種方法支持路徑搜索

                             5)使用鍵值和關係進行索引

                             6)爲讀操作進行優化

                             7)支持事務,企業版還支持在線備份和安全性及監控

                4)Cassandra數據庫:非關係型的混合型的數據庫,類似於google的     

             bigtable( 基於列的)數據庫

                               1)由java語言開發

           2 )寫操作比讀操作更快

                               3)分佈式,基於column的結構

                                4)用戶:facebook

                                5)Hbase數據庫:Hadoop database 是google的bigtable數據庫的開源實現

                                1)是分佈式的,列式的數據庫

                                2)Hbase利用Hadoop的HDFS作爲文件系統,利用Hadoop Mapreduce

                                來處理Hbase中的海量數據

                                3)採用分佈式架構Map/reduce

                                4)協議:http/rest,同時支持thirft

                                5)適用於大數據

                6)Mongodb數據庫:

                                1)社區非常活躍,文檔豐富,由10gen公司商業支持,持續性有保障

                                2)所用語言:c++

                                3)保存了sql的某些優良特性(索引,查尋……)

                                4)協議:Custom,binary(Bson)

                                5)支持Master/slave複製(支持自動錯誤回覆,使用sets複製)

                                7)內建分片機制

                                8)支持javascript表達式查詢,在服務器端可以執行任意js函數

                     9)數據存儲採用內存到文件的映射

                      10)在32位操作系統上,數據庫大小限制在2.5G以內,64位系統無限制

                       11)空數據庫大約佔192M

                       12) 採用GridFS存儲大數據和元數據


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章