Nosql and Mongodb 介绍
Nosql興起的背景:
1)web2.0興起(高交互性),傳統(tǒng)的關(guān)系型數(shù)據(jù)庫為了保證“通用性”的設(shè)計而帶來 了功能復(fù)雜,性能開銷大,和價格昂貴的問題。
2)避免不必要的復(fù)雜性
3)更高的吞吐量和高并發(fā)
4)在商用硬件上的水平擴展能力
5)Nosql實現(xiàn)大表自動切割,更有利于支持分布式處理
6)在性能和安全方面做了折中(有時不需要sql的很高的安全性)
7)云計算的需求(從中心模式轉(zhuǎn)到分布模式)
各種主流Nosql數(shù)據(jù)庫:
????????????????1)memcached數(shù)據(jù)庫:memcached數(shù)據(jù)庫的成功,帶動了Nosql運動的熱潮
????????特點:
? ? ? ? ? ? ? ? ? 1)它是一個存儲鍵值對兒的hashmap
? ? ? ? ? ? ? ? ? ? ? ? ? ? ?2)高性能的分布式內(nèi)存緩存服務(wù)器,常駐內(nèi)存,用于動態(tài)web應(yīng)用,以減輕
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 數(shù)據(jù)庫負載
? ? ? ? ? ? ? ? ? ? ? ? ? ? ?3)客戶端通過memcached協(xié)議與守護進程(daemon)通信
? ? ? ? ? ? ? ? ? ? ? ? ? ? ?4)缺乏認證與安全控制(所以應(yīng)該部署于防火墻的內(nèi)部)
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 5 )基于libevent的事件處理機制(http://baike.haosou.com/doc/1037929- ? ? ? ? ? ? ? ? ? ? ? ? 1097798.html)
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 6 ?)不互相通信的分布式(服務(wù)器之間不互相通信)
? ? ? ? ? ? ? 2)redis數(shù)據(jù)庫:是一個key-value存儲系統(tǒng),和memcached類似
1 )運行速度異常快
2)數(shù)據(jù)都緩存在內(nèi)存中,它是有硬盤支持的內(nèi)存數(shù)據(jù)庫
3)支持Master-slave復(fù)制(主從復(fù)制)
4)支持多種數(shù)據(jù)類型 如string(字符串),list(鏈表),set(集合),zset(有序 集合)
5)支持pop/push機制,允許用戶實現(xiàn)消息機制
3)neo4j數(shù)據(jù)庫:它是基于關(guān)系的圖型數(shù)據(jù)庫
????????????1)訪問協(xié)議:http/rest
? ? ? ? ? ? ? ? ? ? ? ? ? ? ?2)可獨立使用,或嵌入到j(luò)ava程序中使用
? ? ? ? ? ? ? ? ? ? ? ? ? ? ?3)圖型的節(jié)點和邊都可以帶有元數(shù)據(jù)
? ? ? ? ? ? ? ? ? ? ? ? ? ? ?4)使用多種方法支持路徑搜索
? ? ? ? ? ? ? ? ? ? ? ? ? ? ?5)使用鍵值和關(guān)系進行索引
? ? ? ? ? ? ? ? ? ? ? ? ? ? ?6)為讀操作進行優(yōu)化
? ? ? ? ? ? ? ? ? ? ? ? ? ? ?7)支持事務(wù),企業(yè)版還支持在線備份和安全性及監(jiān)控
? ? ? ? ? ? ? ? 4)Cassandra數(shù)據(jù)庫:非關(guān)系型的混合型的數(shù)據(jù)庫,類似于google的 ?
????????bigtable( 基于列的)數(shù)據(jù)庫
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?1)由java語言開發(fā)
? 2 )寫操作比讀操作更快
? ? ? ? ? ? ? ? ? ? ? ? ? ? ??3)分布式,基于column的結(jié)構(gòu)
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 4)用戶:facebook
? ? ? ? ? ? ? ? ????????????????5)Hbase數(shù)據(jù)庫:Hadoop database 是google的bigtable數(shù)據(jù)庫的開源實現(xiàn)
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 1)是分布式的,列式的數(shù)據(jù)庫
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 2)Hbase利用Hadoop的HDFS作為文件系統(tǒng),利用Hadoop Mapreduce
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 來處理Hbase中的海量數(shù)據(jù)
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 3)采用分布式架構(gòu)Map/reduce
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 4)協(xié)議:http/rest,同時支持thirft
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 5)適用于大數(shù)據(jù)
? ? ? ? ? ? ? ? 6)Mongodb數(shù)據(jù)庫:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 1)社區(qū)非常活躍,文檔豐富,由10gen公司商業(yè)支持,持續(xù)性有保障
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 2)所用語言:c++
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 3)保存了sql的某些優(yōu)良特性(索引,查尋……)
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 4)協(xié)議:Custom,binary(Bson)
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 5)支持Master/slave復(fù)制(支持自動錯誤回復(fù),使用sets復(fù)制)
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 7)內(nèi)建分片機制
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 8)支持javascript表達式查詢,在服務(wù)器端可以執(zhí)行任意js函數(shù)
? ? ? ? ? ? ? ? ? ? ?9)數(shù)據(jù)存儲采用內(nèi)存到文件的映射
? ? ? ? ? ? ? ? ? ? ? 10)在32位操作系統(tǒng)上,數(shù)據(jù)庫大小限制在2.5G以內(nèi),64位系統(tǒng)無限制
? ? ? ? ? ? ? ? ? ? ? ?11)空數(shù)據(jù)庫大約占192M
? ? ? ? ? ? ? ? ? ? ? ?12) 采用GridFS存儲大數(shù)據(jù)和元數(shù)據(jù)
轉(zhuǎn)載于:https://blog.51cto.com/hackcrack/1629228
總結(jié)
以上是生活随笔為你收集整理的Nosql and Mongodb 介绍的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SaltStack:Salt SSH
- 下一篇: Socket的三个关联函数