NoSQL非關(guān)系型數(shù)據(jù)庫學(xué)習(xí)(二)
Gartner分析師Merv Adrian在Twitter上RT了一條關(guān)于NoSQL數(shù)據(jù)庫評選的消息,他認(rèn)為這就像是在對比你更喜歡蘋果、雞尾酒還是西蘭花,它們都有不同的應(yīng)用場景,對比NoSQL產(chǎn)品是沒有意義的。比如MongoDB和Cassandra就沒有什么可比性,它們的共同點(diǎn)只是都叫做NoSQL數(shù)據(jù)庫而已,它們的應(yīng)用場景非常不同。
下面還是根據(jù)學(xué)習(xí),對現(xiàn)在比較熱門的MangoDB和Memcached以及Redis做個(gè)簡單的學(xué)習(xí):
MangoDB是(document database, 硬盤型)
a. 基于磁盤的數(shù)據(jù)庫,只是緩存熱點(diǎn)數(shù)據(jù)在內(nèi)存中。
b. 文檔型的非關(guān)系型數(shù)據(jù)庫,
優(yōu)勢是查詢功能強(qiáng)大,可存儲海量數(shù)據(jù)。
c. 可替換MySQL等關(guān)系型數(shù)據(jù)庫;
在內(nèi)存足夠的情況下,讀寫性能不錯(cuò),可省去Cache這一層
Memcached和Redis是(key value store, 內(nèi)存型)
a.內(nèi)存型數(shù)據(jù)庫,數(shù)據(jù)保存在內(nèi)存中,通過TCP直接存取; 或者說是全內(nèi)存Cache。
優(yōu)勢是速度快,并發(fā)高,缺點(diǎn)是數(shù)據(jù)類型有限,查詢功能不強(qiáng),一般做緩存。
b. Key Value Store
c. 全內(nèi)存
Memcached vs Redis
a. 都是Key Vale, Memory Cache
b. Memecahced是 multiple-thread; 適合多核CPU的應(yīng)用。
Redis是 single-thread.
如果再多數(shù)據(jù)結(jié)構(gòu)基礎(chǔ)上支持多線程,加鎖可能是個(gè)問題(待深入學(xué)習(xí)驗(yàn)證)。
c. Redis具有持久化機(jī)制,可以定期將內(nèi)存的數(shù)據(jù)持久化到硬盤上
d. Redis支持的數(shù)據(jù)類型更多
e. Redis 具備binlog功能,將所有操作寫入日志,以便redis出現(xiàn)故障時(shí),可通過binlog進(jìn)行恢復(fù)。
f. Redis支持Virtual Memory,可限定內(nèi)存大小,當(dāng)數(shù)據(jù)超出閥值,就通過類似LRU的算法將最不常用的數(shù)據(jù)保存到硬盤的頁面問題中。
posted on 2014-01-13 12:03 crazycy 閱讀(505) 評論(0) 編輯 收藏 所屬分類: JavaEE技術(shù) 、DBMS