真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

本地nosql性能,nosql主要解決了大數(shù)據(jù)環(huán)境下的

一、NoSQL數(shù)據(jù)庫簡介

Web1.0的時代,數(shù)據(jù)訪問量很有限,用一夫當關(guān)的高性能的單點服務(wù)器可以解決大部分問題。

成都創(chuàng)新互聯(lián)公司-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價比八宿網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式八宿網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋八宿地區(qū)。費用合理售后完善,10余年實體公司更值得信賴。

隨著Web2.0的時代的到來,用戶訪問量大幅度提升,同時產(chǎn)生了大量的用戶數(shù)據(jù)。加上后來的智能移動設(shè)備的普及,所有的互聯(lián)網(wǎng)平臺都面臨了巨大的性能挑戰(zhàn)。

NoSQL(NoSQL = Not Only SQL ),意即“不僅僅是SQL”,泛指非關(guān)系型的數(shù)據(jù)庫。

NoSQL 不依賴業(yè)務(wù)邏輯方式存儲,而以簡單的key-value模式存儲。因此大大的增加了數(shù)據(jù)庫的擴展能力。

Memcache Memcache Redis Redis MongoDB MongoDB 列式數(shù)據(jù)庫 列式數(shù)據(jù)庫 Hbase Hbase

HBase是Hadoop項目中的數(shù)據(jù)庫。它用于需要對大量的數(shù)據(jù)進行隨機、實時的讀寫操作的場景中。

HBase的目標就是處理數(shù)據(jù)量非常龐大的表,可以用普通的計算機處理超過10億行數(shù)據(jù),還可處理有數(shù)百萬列元素的數(shù)據(jù)表。

Cassandra Cassandra

Apache Cassandra是一款免費的開源NoSQL數(shù)據(jù)庫,其設(shè)計目的在于管理由大量商用服務(wù)器構(gòu)建起來的龐大集群上的海量數(shù)據(jù)集(數(shù)據(jù)量通常達到PB級別)。在眾多顯著特性當中,Cassandra最為卓越的長處是對寫入及讀取操作進行規(guī)模調(diào)整,而且其不強調(diào)主集群的設(shè)計思路能夠以相對直觀的方式簡化各集群的創(chuàng)建與擴展流程。

主要應(yīng)用:社會關(guān)系,公共交通網(wǎng)絡(luò),地圖及網(wǎng)絡(luò)拓譜(n*(n-1)/2)

為什么要使用NoSQL?NOSQL的優(yōu)勢

這次的NoSQL專欄系列將先整體介紹NoSQL,然后介紹如何把NoSQL運用到自己的項目中合適的場景中,還會適當?shù)胤治鲆恍┏晒Π咐?,希望有成功使用NoSQL經(jīng)驗的朋友給我提供一些線索和信息。

NoSQL概念隨著web2.0的快速發(fā)展,非關(guān)系型、分布式數(shù)據(jù)存儲得到了快速的發(fā)展,它們不保證關(guān)系數(shù)據(jù)的ACID特性。NoSQL概念在2009年被提了出來。NoSQL最常見的解釋是“non-relational”,“Not Only SQL”也被很多人接受。(“NoSQL”一詞最早于1998年被用于一個輕量級的關(guān)系數(shù)據(jù)庫的名字。)

NoSQL被我們用得最多的當數(shù)key-value存儲,當然還有其他的文檔型的、列存儲、圖型數(shù)據(jù)庫、xml數(shù)據(jù)庫等。在NoSQL概念提出之前,這些數(shù)據(jù)庫就被用于各種系統(tǒng)當中,但是卻很少用于web互聯(lián)網(wǎng)應(yīng)用。比如cdb、qdbm、bdb數(shù)據(jù)庫。

傳統(tǒng)關(guān)系數(shù)據(jù)庫的瓶頸

傳統(tǒng)的關(guān)系數(shù)據(jù)庫具有不錯的性能,高穩(wěn)定型,久經(jīng)歷史考驗,而且使用簡單,功能強大,同時也積累了大量的成功案例。在互聯(lián)網(wǎng)領(lǐng)域,MySQL成為了絕對靠前的王者,毫不夸張的說,MySQL為互聯(lián)網(wǎng)的發(fā)展做出了卓越的貢獻。

在90年代,一個網(wǎng)站的訪問量一般都不大,用單個數(shù)據(jù)庫完全可以輕松應(yīng)付。在那個時候,更多的都是靜態(tài)網(wǎng)頁,動態(tài)交互類型的網(wǎng)站不多。

到了最近10年,網(wǎng)站開始快速發(fā)展?;鸨恼搲⒉┛?、sns、微博逐漸引領(lǐng)web領(lǐng)域的潮流。在初期,論壇的流量其實也不大,如果你接觸網(wǎng)絡(luò)比較早,你可能還記得那個時候還有文本型存儲的論壇程序,可以想象一般的論壇的流量有多大。

Memcached+MySQL

后來,隨著訪問量的上升,幾乎大部分使用MySQL架構(gòu)的網(wǎng)站在數(shù)據(jù)庫上都開始出現(xiàn)了性能問題,web程序不再僅僅專注在功能上,同時也在追求性能。程序員們開始大量的使用緩存技術(shù)來緩解數(shù)據(jù)庫的壓力,優(yōu)化數(shù)據(jù)庫的結(jié)構(gòu)和索引。開始比較流行的是通過文件緩存來緩解數(shù)據(jù)庫壓力,但是當訪問量繼續(xù)增大的時候,多臺web機器通過文件緩存不能共享,大量的小文件緩存也帶了了比較高的IO壓力。在這個時候,Memcached就自然的成為一個非常時尚的技術(shù)產(chǎn)品。

Memcached作為一個獨立的分布式的緩存服務(wù)器,為多個web服務(wù)器提供了一個共享的高性能緩存服務(wù),在Memcached服務(wù)器上,又發(fā)展了根據(jù)hash算法來進行多臺Memcached緩存服務(wù)的擴展,然后又出現(xiàn)了一致性hash來解決增加或減少緩存服務(wù)器導(dǎo)致重新hash帶來的大量緩存失效的弊端。當時,如果你去面試,你說你有Memcached經(jīng)驗,肯定會加分的。

Mysql主從讀寫分離

由于數(shù)據(jù)庫的寫入壓力增加,Memcached只能緩解數(shù)據(jù)庫的讀取壓力。讀寫集中在一個數(shù)據(jù)庫上讓數(shù)據(jù)庫不堪重負,大部分網(wǎng)站開始使用主從復(fù)制技術(shù)來達到讀寫分離,以提高讀寫性能和讀庫的可擴展性。Mysql的master-slave模式成為這個時候的網(wǎng)站標配了。

分表分庫隨著web2.0的繼續(xù)高速發(fā)展,在Memcached的高速緩存,MySQL的主從復(fù)制,讀寫分離的基礎(chǔ)之上,這時MySQL主庫的寫壓力開始出現(xiàn)瓶頸,而數(shù)據(jù)量的持續(xù)猛增,由于MyISAM使用表鎖,在高并發(fā)下會出現(xiàn)嚴重的鎖問題,大量的高并發(fā)MySQL應(yīng)用開始使用InnoDB引擎代替MyISAM。同時,開始流行使用分表分庫來緩解寫壓力和數(shù)據(jù)增長的擴展問題。這個時候,分表分庫成了一個熱門技術(shù),是面試的熱門問題也是業(yè)界討論的熱門技術(shù)問題。也就在這個時候,MySQL推出了還不太穩(wěn)定的表分區(qū),這也給技術(shù)實力一般的公司帶來了希望。雖然MySQL推出了MySQL Cluster集群,但是由于在互聯(lián)網(wǎng)幾乎沒有成功案例,性能也不能滿足互聯(lián)網(wǎng)的要求,只是在高可靠性上提供了非常大的保證。

MySQL的擴展性瓶頸

在互聯(lián)網(wǎng),大部分的MySQL都應(yīng)該是IO密集型的,事實上,如果你的MySQL是個CPU密集型的話,那么很可能你的MySQL設(shè)計得有性能問題,需要優(yōu)化了。大數(shù)據(jù)量高并發(fā)環(huán)境下的MySQL應(yīng)用開發(fā)越來越復(fù)雜,也越來越具有技術(shù)挑戰(zhàn)性。分表分庫的規(guī)則把握都是需要經(jīng)驗的。雖然有像淘寶這樣技術(shù)實力強大的公司開發(fā)了透明的中間件層來屏蔽開發(fā)者的復(fù)雜性,但是避免不了整個架構(gòu)的復(fù)雜性。分庫分表的子庫到一定階段又面臨擴展問題。還有就是需求的變更,可能又需要一種新的分庫方式。

MySQL數(shù)據(jù)庫也經(jīng)常存儲一些大文本字段,導(dǎo)致數(shù)據(jù)庫表非常的大,在做數(shù)據(jù)庫恢復(fù)的時候就導(dǎo)致非常的慢,不容易快速恢復(fù)數(shù)據(jù)庫。比如1000萬4KB大小的文本就接近40GB的大小,如果能把這些數(shù)據(jù)從MySQL省去,MySQL將變得非常的小。

關(guān)系數(shù)據(jù)庫很強大,但是它并不能很好的應(yīng)付所有的應(yīng)用場景。MySQL的擴展性差(需要復(fù)雜的技術(shù)來實現(xiàn)),大數(shù)據(jù)下IO壓力大,表結(jié)構(gòu)更改困難,正是當前使用MySQL的開發(fā)人員面臨的問題。

NOSQL的優(yōu)勢易擴展NoSQL數(shù)據(jù)庫種類繁多,但是一個共同的特點都是去掉關(guān)系數(shù)據(jù)庫的關(guān)系型特性。數(shù)據(jù)之間無關(guān)系,這樣就非常容易擴展。也無形之間,在架構(gòu)的層面上帶來了可擴展的能力。

大數(shù)據(jù)量,高性能

NoSQL數(shù)據(jù)庫都具有非常高的讀寫性能,尤其在大數(shù)據(jù)量下,同樣表現(xiàn)優(yōu)秀。這得益于它的無關(guān)系性,數(shù)據(jù)庫的結(jié)構(gòu)簡單。一般MySQL使用Query Cache,每次表的更新Cache就失效,是一種大粒度的Cache,在針對web2.0的交互頻繁的應(yīng)用,Cache性能不高。而NoSQL的Cache是記錄級的,是一種細粒度的Cache,所以NoSQL在這個層面上來說就要性能高很多了。

靈活的數(shù)據(jù)模型

NoSQL無需事先為要存儲的數(shù)據(jù)建立字段,隨時可以存儲自定義的數(shù)據(jù)格式。而在關(guān)系數(shù)據(jù)庫里,增刪字段是一件非常麻煩的事情。如果是非常大數(shù)據(jù)量的表,增加字段簡直就是一個噩夢。這點在大數(shù)據(jù)量的web2.0時代尤其明顯。

高可用NoSQL在不太影響性能的情況,就可以方便的實現(xiàn)高可用的架構(gòu)。比如Cassandra,HBase模型,通過復(fù)制模型也能實現(xiàn)高可用。

總結(jié)NoSQL數(shù)據(jù)庫的出現(xiàn),彌補了關(guān)系數(shù)據(jù)(比如MySQL)在某些方面的不足,在某些方面能極大的節(jié)省開發(fā)成本和維護成本。

MySQL和NoSQL都有各自的特點和使用的應(yīng)用場景,兩者的緊密結(jié)合將會給web2.0的數(shù)據(jù)庫發(fā)展帶來新的思路。

nosql是什么

NoSQL,泛指非關(guān)系型的數(shù)據(jù)庫。隨著互聯(lián)網(wǎng)web2.0網(wǎng)站的興起,傳統(tǒng)的關(guān)系數(shù)據(jù)庫在應(yīng)付web2.0網(wǎng)站,特別是超大規(guī)模和高并發(fā)的SNS類型的web2.0純動態(tài)網(wǎng)站已經(jīng)顯得力不從心,暴露了很多難以克服的問題,而非關(guān)系型的數(shù)據(jù)庫則由于其本身的特點得到了非常迅速的發(fā)展。NoSQL數(shù)據(jù)庫的產(chǎn)生就是為了解決大規(guī)模數(shù)據(jù)集合多重數(shù)據(jù)種類帶來的挑戰(zhàn),尤其是大數(shù)據(jù)應(yīng)用難題。

雖然NoSQL流行語火起來才短短一年的時間,但是不可否認,現(xiàn)在已經(jīng)開始了第二代運動。盡管早期的堆棧代碼只能算是一種實驗,然而現(xiàn)在的系統(tǒng)已經(jīng)更加的成熟、穩(wěn)定。不過現(xiàn)在也面臨著一個嚴酷的事實:技術(shù)越來越成熟——以至于原來很好的NoSQL數(shù)據(jù)存儲不得不進行重寫,也有少數(shù)人認為這就是所謂的2.0版本。這里列出一些比較知名的工具,可以為大數(shù)據(jù)建立快速、可擴展的存儲庫。

NoSQL(NoSQL = Not Only SQL ),意即“不僅僅是SQL”,是一項全新的數(shù)據(jù)庫革命性運動,早期就有人提出,發(fā)展至2009年趨勢越發(fā)高漲。NoSQL的擁護者們提倡運用非關(guān)系型的數(shù)據(jù)存儲,相對于鋪天蓋地的關(guān)系型數(shù)據(jù)庫運用,這一概念無疑是一種全新的思維的注入。

對于NoSQL并沒有一個明確的范圍和定義,但是他們都普遍存在下面一些共同特征:

不需要預(yù)定義模式:不需要事先定義數(shù)據(jù)模式,預(yù)定義表結(jié)構(gòu)。數(shù)據(jù)中的每條記錄都可能有不同的屬性和格式。當插入數(shù)據(jù)時,并不需要預(yù)先定義它們的模式。

無共享架構(gòu):相對于將所有數(shù)據(jù)存儲的存儲區(qū)域網(wǎng)絡(luò)中的全共享架構(gòu)。NoSQL往往將數(shù)據(jù)劃分后存儲在各個本地服務(wù)器上。因為從本地磁盤讀取數(shù)據(jù)的性能往往好于通過網(wǎng)絡(luò)傳輸讀取數(shù)據(jù)的性能,從而提高了系統(tǒng)的性能。

彈性可擴展:可以在系統(tǒng)運行的時候,動態(tài)增加或者刪除結(jié)點。不需要停機維護,數(shù)據(jù)可以自動遷移。

分區(qū):相對于將數(shù)據(jù)存放于同一個節(jié)點,NoSQL數(shù)據(jù)庫需要將數(shù)據(jù)進行分區(qū),將記錄分散在多個節(jié)點上面。并且通常分區(qū)的同時還要做復(fù)制。這樣既提高了并行性能,又能保證沒有單點失效的問題。

異步復(fù)制:和RAID存儲系統(tǒng)不同的是,NoSQL中的復(fù)制,往往是基于日志的異步復(fù)制。這樣,數(shù)據(jù)就可以盡快地寫入一個節(jié)點,而不會被網(wǎng)絡(luò)傳輸引起遲延。缺點是并不總是能保證一致性,這樣的方式在出現(xiàn)故障的時候,可能會丟失少量的數(shù)據(jù)。

BASE:相對于事務(wù)嚴格的ACID特性,NoSQL數(shù)據(jù)庫保證的是BASE特性。BASE是最終一致性和軟事務(wù)。

NoSQL數(shù)據(jù)庫并沒有一個統(tǒng)一的架構(gòu),兩種NoSQL數(shù)據(jù)庫之間的不同,甚至遠遠超過兩種關(guān)系型數(shù)據(jù)庫的不同??梢哉f,NoSQL各有所長,成功的NoSQL必然特別適用于某些場合或者某些應(yīng)用,在這些場合中會遠遠勝過關(guān)系型數(shù)據(jù)庫和其他的NoSQL。

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

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

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

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

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

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

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

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

YCSB測試工具

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

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

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

下列測試結(jié)果圖以顏色進行測試對象區(qū)分,

Tarantool (HASH) (藍)

Tarantool (TREE)(淺藍)

Redis (紅)

Azure Redis Cache (橙)

Memcached (綠)

CouchBase(黑)

更多圖片請點擊[這里]查看。

結(jié)論

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

NoSQL和MySQL的區(qū)別大嗎?

即非關(guān)系型數(shù)據(jù)庫和關(guān)系型數(shù)據(jù)庫。

MySQL的優(yōu)點:事務(wù)處理—保持數(shù)據(jù)的一致性;由于以標準化為前提,數(shù)據(jù)更新的開銷很?。ㄏ嗤淖侄位旧现挥幸惶帲?;可以進行Join等復(fù)雜查詢

NoSQL的優(yōu)點:首先它是基于內(nèi)存的,也就是數(shù)據(jù)放在內(nèi)存中,而不是像數(shù)據(jù)庫那樣把數(shù)據(jù)放在磁盤上,而內(nèi)存的讀取速度是磁盤讀取速度的幾十倍到上百倍,所以NoSQL工具的速度遠比數(shù)據(jù)庫讀取速度要快得多,滿足了高響應(yīng)的要求。即使NoSQL將數(shù)據(jù)放在磁盤中,它也是一種半結(jié)構(gòu)化的數(shù)據(jù) 格式,讀取到解析的復(fù)雜度遠比MySQL要簡單,這是因為MySQL存儲的是經(jīng)過結(jié)構(gòu)化、多范式等有復(fù)雜規(guī)則的數(shù)據(jù),還原為內(nèi)存結(jié)構(gòu)的速度較慢。NoSQL在很大程度上滿足了高并發(fā)、快速讀/和響應(yīng)的要求,所以它也是Java互聯(lián)網(wǎng)系統(tǒng)的利器。

簡單的擴展:典型例子是Cassandra,由于其架構(gòu)是類似于經(jīng)典的P2P,所以能通過輕松地添加新的節(jié)點來擴展這個集群;

低廉的成本:這是大多數(shù)分布式數(shù)據(jù)庫共有的特點,因為主要都是開源軟件,沒有昂貴的License成本;

NoSQL的缺點:大多數(shù)NoSQL數(shù)據(jù)庫都不支持事務(wù),也不像 SQL Server和Oracle那樣能提供各種附加功能,比如BI和報表等; 不提供對SQL的支持

那么該如何選擇?

如果規(guī)模和性能比24小時的數(shù)據(jù)一致性更重要,那NoSQL是一個理想的選擇 (NoSQL依賴于BASE模型——基本可用、軟狀態(tài)、最終一致性)。

但如果要保證到“始終一致”,尤其是對于機密信息和財務(wù)信息,那么MySQL很可能是最優(yōu)的選擇(MySQL依賴于ACID模型——原子性、一致性、獨立性和耐久性)。

如果關(guān)系數(shù)據(jù)庫在你的應(yīng)用場景中,完全能夠很好的工作,而你又是非常善于使用和維護關(guān)系數(shù)據(jù)庫的,那么我覺得你完全沒有必要遷移到NoSQL上面,除非你是個喜歡折騰的人。如果你是在金融,電信等以數(shù)據(jù)為王的關(guān)鍵領(lǐng)域,目前使用的是Oracle數(shù)據(jù)庫來提供高可靠性的,除非遇到特別大的瓶頸,不然也別貿(mào)然嘗試NoSQL。

然而,在WEB2.0的網(wǎng)站中,關(guān)系數(shù)據(jù)庫大部分都出現(xiàn)了瓶頸。在磁盤IO、數(shù)據(jù)庫可擴展上都花費了開發(fā)人員相當多的精力來優(yōu)化,比如做分表分庫(database sharding)、主從復(fù)制、異構(gòu)復(fù)制等等,然而,這些工作需要的技術(shù)能力越來越高,也越來越具有挑戰(zhàn)性。如果你正在經(jīng)歷這些場合,那么我覺得你應(yīng)該嘗試一下NoSQL了。

具體問題具體分析

MySQL體積小、速度快、成本低、結(jié)構(gòu)穩(wěn)定、便于查詢,可以保證數(shù)據(jù)的一致性,但缺乏靈活性。

NoSQL高性能、高擴展、高可用,不用局限于固定的結(jié)構(gòu),減少了時間和空間上的開銷,卻又很難保證數(shù)據(jù)一致性。

————————————————

版權(quán)聲明:本文為CSDN博主「蒟蒻熊」的原創(chuàng)文章,遵循CC 4.0 BY-SA版權(quán)協(xié)議,轉(zhuǎn)載請附上原文出處鏈接及本聲明。

原文鏈接:

簡述什么是nosql數(shù)據(jù)庫,并列舉兩種常見的nosql數(shù)據(jù)庫名稱及其特點

NoSQL太火,冒出太多產(chǎn)品了,保守估計也成百上千了。

互聯(lián)網(wǎng)公司常用的基本集中在以下幾種,每種只舉一個比較常見或者應(yīng)用比較成功的例子吧。

1. In-Memory KV Store : Redis

in memory key-value store,同時提供了更加豐富的數(shù)據(jù)結(jié)構(gòu)和運算的能力,成功用法是替代memcached,通過checkpoint和commit log提供了快速的宕機恢復(fù),同時支持replication提供讀可擴展和高可用。

2. Disk-Based KV Store: Leveldb

真正基于磁盤的key-value storage, 模型單一簡單,數(shù)據(jù)量不受限于內(nèi)存大小,數(shù)據(jù)落盤高可靠,Google的幾位大神出品的精品,LSM模型天然寫優(yōu)化,順序?qū)懕P的方式對于新硬件ssd再適合不過了,不足是僅提供了一個庫,需要自己封裝server端。

3. Document Store: Mongodb

分布式nosql,具備了區(qū)別mysql的最大亮點:可擴展性。mongodb 最新引人的莫過于提供了sql接口,是目前nosql里最像mysql的,只是沒有ACID的特性,發(fā)展很快,支持了索引等特性,上手容易,對于數(shù)據(jù)量遠超內(nèi)存限制的場景來說,還需要慎重。

4. Column Table Store: HBase

這個富二代似乎不用贅述了,最大的優(yōu)勢是開源,對于普通的scan和基于行的get等基本查詢,性能完全不是問題,只是只提供裸的api,易用性上是短板,可擴展性方面是最強的,其次坐上了Hadoop的快車,社區(qū)發(fā)展很快,各種基于其上的開源產(chǎn)品不少,來解決諸如join、聚集運算等復(fù)雜查詢。


文章名稱:本地nosql性能,nosql主要解決了大數(shù)據(jù)環(huán)境下的
分享鏈接:http://weahome.cn/article/hdegip.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部