nosql內(nèi)存,nosql數(shù)據(jù)庫(kù)存儲(chǔ)模式

什么是NoSQL數(shù)據(jù)庫(kù)?

答案:A

創(chuàng)新互聯(lián)公司長(zhǎng)期為超過(guò)千家客戶(hù)提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對(duì)不同對(duì)象提供差異化的產(chǎn)品和服務(wù);打造開(kāi)放共贏平臺(tái),與合作伙伴共同營(yíng)造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為成都企業(yè)提供專(zhuān)業(yè)的做網(wǎng)站、網(wǎng)站制作,成都網(wǎng)站改版等技術(shù)服務(wù)。擁有10年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開(kāi)發(fā)。

1.文檔型數(shù)據(jù)庫(kù)

作為最受歡迎的NoSQL產(chǎn)品,文檔型數(shù)據(jù)庫(kù)MongoDB當(dāng)仁不讓地占據(jù)了第一的位置,同時(shí)它也是所有NoSQL數(shù)據(jù)庫(kù)中排名最靠前的產(chǎn)品(總排行榜第七名)。Apache基金會(huì)的CouchDB排在第二,基于.Net的數(shù)據(jù)庫(kù)RavenDB排在第三,Couchbase排在第四。

2.鍵值(Key-value)數(shù)據(jù)庫(kù)

鍵值(Key-value)數(shù)據(jù)庫(kù)是NoSQL領(lǐng)域中應(yīng)用范圍最廣的,也是涉及產(chǎn)品最多的一種模型。從最簡(jiǎn)單的BerkeleyDB到功能豐富的分布式數(shù)據(jù)庫(kù)Riak再到Amazon托管的DynamoDB不一而足。

在鍵值數(shù)據(jù)庫(kù)流行度排行中,Redis不出意外地排名第一,它是一款由Vmware支持的內(nèi)存數(shù)據(jù)庫(kù),總體排名第十一。排在第二位的是Memcached,它在緩存系統(tǒng)中應(yīng)用十分廣泛。排在之后的是Riak、BerkeleyDB、SimpleDB、DynamoDB以及甲骨文的Oracle NoSQL數(shù)據(jù)庫(kù)。值得注意的是,Oracle NoSQL數(shù)據(jù)庫(kù)上榜不久,得分已經(jīng)翻番,上升勢(shì)頭非常迅猛。

3. 列式存儲(chǔ)

列式存儲(chǔ)被視為NoSQL數(shù)據(jù)庫(kù)中非常重要的一種模式,其中Cassandra流行度最高,它已經(jīng)由Facebook轉(zhuǎn)交給到Apache進(jìn)行管理,同時(shí)Cassandra在全體數(shù)據(jù)庫(kù)排名中排在第十位,緊隨MongoDB成為第二受歡迎的NoSQL數(shù)據(jù)庫(kù)。基于Hadoop的Hbase排在第二位,Hypertable排在第三。而Google的BigTable并未列入排名,原因是它并未正式公開(kāi)。

如何讓NoSQL內(nèi)存數(shù)據(jù)庫(kù)適合企業(yè)級(jí)應(yīng)用

(1) 確保主存儲(chǔ)節(jié)點(diǎn)一旦失效就立刻切換到備用復(fù)制節(jié)點(diǎn)。這一般基于成熟健壯的看門(mén)狗技術(shù) (Watch Dog),看門(mén)狗持續(xù)的監(jiān)控節(jié)點(diǎn),一旦發(fā)現(xiàn)失效就切換到健康的復(fù)制節(jié)點(diǎn)。

(2) 對(duì)于你的應(yīng)用程序而言切換過(guò)程應(yīng)盡可能透明;最理想的情況是無(wú)需更改任何配置。更高級(jí)的解決方案是僅僅修改DNS中存儲(chǔ)節(jié)點(diǎn)的IP地址,確保修復(fù)過(guò)程在幾秒鐘之內(nèi)完成。

(3) 自動(dòng)切換應(yīng)當(dāng)基于Quorum并且是完全一致(Fully Consistent)或最終一致(Eventually Consistent)的。

如何根據(jù)性能選擇內(nèi)存NoSQL數(shù)據(jù)庫(kù)

本文主要內(nèi)容是測(cè)試了不同NoSQL數(shù)據(jù)庫(kù)在測(cè)試工具YCSB中的表現(xiàn)。我們選取了3款流行的內(nèi)存(in-memory)數(shù)據(jù)庫(kù)管理系統(tǒng):Redis,Tarantool 以及 CouchBase,還有緩存系統(tǒng)Memchached。Memchached雖然不屬于數(shù)據(jù)庫(kù)管理系統(tǒng)但常作為快速存儲(chǔ)系統(tǒng)使用。

測(cè)試環(huán)境由4臺(tái)在Microsoft Azure Cloud中的虛擬機(jī)組成的計(jì)算機(jī)組組成。這些虛擬機(jī)同屬于一個(gè)數(shù)據(jù)中心。nosql-1和nosql-2用作測(cè)試Tarantool和CouchBase,nosql-3和nosql-4用作測(cè)試Redis,Azure Redis Cache 以及 Memcached。這些機(jī)器都安裝和配置了相應(yīng)數(shù)據(jù)庫(kù)和測(cè)試項(xiàng)目。虛擬機(jī)的配置為4核A3 CPU,7GB RAM,120GB硬盤(pán)。

數(shù)據(jù)庫(kù)及設(shè)置

內(nèi)存數(shù)據(jù)庫(kù)管理系統(tǒng)會(huì)存儲(chǔ)所有在主內(nèi)存中的數(shù)據(jù)并在磁碟上進(jìn)行持續(xù)更新操作;透過(guò)日志記錄每個(gè)數(shù)據(jù)的修改以確保連貫性。由于是以append-only方式進(jìn)行日志寫(xiě)入,因此它很少遇到瓶頸問(wèn)題;讀取/寫(xiě)入都不會(huì)造成頻繁的磁碟頭移動(dòng)。

Redis在2009推出,目前的最新版本是3.0.5。我們這里使用的版本是3.0.4,以append-only(只附加)方式進(jìn)行數(shù)據(jù)管理,與其配合使用的是Microsoft Azure Redis Cache工具。

Tarantool是一款開(kāi)源NoSQL數(shù)據(jù)庫(kù)管理系統(tǒng)。我們使用的是Tarantool 1.6.7-126-gb35aff9,日志采用write-ahead(先寫(xiě))模式。Memcached是一款分布式內(nèi)存緩存系統(tǒng),這里使用是Memcached 1.4.14-0ubuntu9。

Couchbase Server是開(kāi)源分布式NoSQL面向文檔數(shù)據(jù)庫(kù),這里使用的版本是Couchbase 4.0.0-4047-1。

YCSB測(cè)試工具

Yahoo! Cloud Serving Benchmark(YCSB)是功能強(qiáng)大的NoSQL數(shù)據(jù)庫(kù)性能測(cè)試工具,它提供了6種主要的負(fù)載工作類(lèi)型,以字母A到F來(lái)區(qū)分。

負(fù)載A負(fù)責(zé)更新操作,極值是50/50的讀寫(xiě)操作,如用于進(jìn)行新近操作記錄。負(fù)載B負(fù)責(zé)讀取操作,極值是95/5的讀寫(xiě)操作,如用于進(jìn)行圖片標(biāo)簽管理,多進(jìn)行標(biāo)簽讀取操作。負(fù)載C負(fù)載100%的讀取操作,如用于進(jìn)行用戶(hù)屬性獲取。負(fù)載D以先進(jìn)先出方式進(jìn)行插入操作,如用戶(hù)進(jìn)行最新數(shù)據(jù)讀取。負(fù)載E負(fù)責(zé)小范圍記錄讀取而不是單個(gè)記錄讀取,如線(xiàn)程會(huì)話(huà)。負(fù)載F負(fù)責(zé)記錄的讀取,修改和寫(xiě)入,如用戶(hù)信息管理。

我們對(duì)配置文件作了兩處參數(shù)修改:數(shù)據(jù)條目recordcount設(shè)為200000,操作條目operationcount設(shè)為5000000。YCSB是多線(xiàn)程工具,我們將以8, 16, 32, 64, 128 及256 線(xiàn)程來(lái)進(jìn)行測(cè)試。詳細(xì)的測(cè)試腳本請(qǐng)點(diǎn)擊這里進(jìn)行下載。

下列測(cè)試結(jié)果圖以顏色進(jìn)行測(cè)試對(duì)象區(qū)分,

Tarantool (HASH) (藍(lán))

Tarantool (TREE)(淺藍(lán))

Redis (紅)

Azure Redis Cache (橙)

Memcached (綠)

CouchBase(黑)

更多圖片請(qǐng)點(diǎn)擊[這里]查看。

結(jié)論

Tarantool在所有負(fù)載類(lèi)型測(cè)試中皆取得了最優(yōu)成績(jī)。它創(chuàng)建了一個(gè)無(wú)鎖內(nèi)存引擎,以協(xié)同多任務(wù)方式進(jìn)行操作而不是互斥或并行處理方式。根據(jù)以下性能圖表現(xiàn),我們的結(jié)論是Tarantool的高吞吐量處理是其最大優(yōu)勢(shì)之一。因此在多數(shù)場(chǎng)合下,Tarantool是用戶(hù)的最佳選擇。

分享名稱(chēng):nosql內(nèi)存,nosql數(shù)據(jù)庫(kù)存儲(chǔ)模式
文章起源:http://muchs.cn/article46/hcishg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)建站、網(wǎng)站營(yíng)銷(xiāo)、營(yíng)銷(xiāo)型網(wǎng)站建設(shè)、手機(jī)網(wǎng)站建設(shè)、網(wǎng)站收錄

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

小程序開(kāi)發(fā)