MongoDB、Redis、elasticSearch、hbase的對比

MongoDB

優勢:
	最大的特色是表結構靈活可變,字段類型能夠隨時修改。
	插入數據時,沒必要考慮表結構的限制
	不須要定義表結構這個特色給表結構的修改帶來了極大的方便
缺點
	給多表查詢、復瑣事務等高級操做帶來了阻礙
適用場景
	MongoDB很適合那些表結構常常改變,數據的邏輯結構沒又沒那麼複雜不須要多表查詢操做,數據量又比較大的應用場景。
	例如,有一個遊戲應用,須要存儲每一個用戶的信息,用戶分爲法師、戰士等具備不一樣屬性的角色,技能裝備,MongoDB只須要一張便就好了

Redis

優勢
	key-value存儲所帶來的簡單和高性能了
	純內存查詢,查詢速度遠遠高於MongoDB這類常規數據庫的讀寫性能
	支出持久化,list、set、String、zset、hashmap多種數據結構
	是key-value數據庫中功能最全面、最簡單易用的一款數據庫
缺點
	給複雜查詢帶來了不少侷限
	查詢都須要依賴key,因此大大限制了多列查詢,區段查詢等複雜的查詢
	由於是基於內存查詢的,因此限制了可存儲的數據量,限制了Redis在數據規模很大的應用場景中
應用場景
	因爲Redis犧牲了常規數據庫中的數據表、複雜查詢等功能,換來了很大的性能的提高
	適合對讀寫性能極高,且數據表結構簡單,查詢條件簡單的應用場景

ElasticSearch

優勢
	其實就是一個搜索引擎,底層是lucene,支持全文搜索
	可以知足國內大多數人的全文搜索的需求,百度、Google就是使用es作的全文搜索
	es能夠爲你自動創建索引,實現高性能的複雜聚合查詢
	在複雜的查詢也可以達到不錯的性能,讓開發者不用爲如何創建索引而頭痛了
缺點
	最明顯的就是字段類型沒法修改、寫入性能較低、高性能資源消耗
應用場景
	es的全文搜索使他稱爲構建搜索引擎的利器,初次以外,es適合複雜的聚合查詢,這一特色還使得es很是適合作數據分析使用

hbase

優勢
	繼承了hadoop項目的優勢,適合對海量數據的支持
	極強的橫向擴展能力
	使用廉價的PC機就可以搭建起海量數據處理的大數據集羣
缺點
	對數據的讀取帶來了侷限,只有同一列族的數據纔可以放在一塊兒,並且全部的查詢都必須依賴於key,這就使得不少複雜的查詢難以實現
應用場景
	因爲列式存儲的能力帶來了海量數據的容納能力,所以很是適合數據量極大、查詢條件簡單、列與列之間聯繫不大的場景
	eg:搜索引擎使用的網頁數據庫
	hbase是一款很重的產品,依賴不少hadoop組件,若是數據規模規模不大,不必使用hbase,MongoDB就徹底能夠知足需求

MongoDB、Redis、elasticSearch、hbase的適用場景:

若是你對數據的讀寫要求極高,而且你的數據規模不大,也不須要長期存儲,選redis;web

若是你的數據規模較大,對數據的讀性能要求很高,數據表的結構須要常常變,有時還須要作一些聚合查詢,選MongoDB;redis

若是你須要構造一個搜索引擎或者你想搞一個看着高大上的數據可視化平臺,而且你的數據有必定的分析價值或者你的老闆是土豪,選ElasticSearch;數據庫

若是你須要存儲海量數據,連你本身都不知道你的數據規模未來會增加多麼大,那麼選HBase。數據結構

相關文章
相關標籤/搜索