一、目前哪些NoSQL數(shù)據(jù)庫(kù)的特點(diǎn)
1. In-Memory KV Store : Redis
in memory key-value store,同時(shí)提供了更加豐富的數(shù)據(jù)結(jié)構(gòu)和運(yùn)算的能力,成功用法是替代memcached,通過(guò)checkpoint和commit log提供了快速的宕機(jī)恢復(fù),同時(shí)支持replication提供讀可擴(kuò)展和高可用。
2. Disk-Based KV Store: Leveldb
真正基于磁盤的key-value storage, 模型單一簡(jiǎn)單,數(shù)據(jù)量不受限于內(nèi)存大小,數(shù)據(jù)落盤高可靠,Google的幾位大神出品的精品,LSM模型天然寫優(yōu)化,順序?qū)懕P的方式對(duì)于新硬件ssd再適合不過(guò)了,不足是僅提供了一個(gè)庫(kù),需要自己封裝server端。
3. Document Store: Mongodb
分布式nosql,具備了區(qū)別mysql的最大亮點(diǎn):可擴(kuò)展性。mongodb 最新引人的莫過(guò)于提供了sql接口,是目前nosql里最像mysql的,只是沒(méi)有ACID的特性,發(fā)展很快,支持了索引等特性,上手容易,對(duì)于數(shù)據(jù)量遠(yuǎn)超內(nèi)存限制的場(chǎng)景來(lái)說(shuō),還需要慎重。
4. Column Table Store: HBase
這個(gè)富二代似乎不用贅述了,最大的優(yōu)勢(shì)是開源,對(duì)于普通的scan和基于行的get等基本查詢,性能完全不是問(wèn)題,只是只提供裸的api,易用性上是短板,可擴(kuò)展性方面是較早的,其次坐上了Hadoop的快車,社區(qū)發(fā)展很快,各種基于其上的開源產(chǎn)品不少,來(lái)解決諸如join、聚集運(yùn)算等復(fù)雜查詢。
延伸閱讀:
二、comdb/comdbfast數(shù)據(jù)庫(kù)
Comdb是一個(gè)獨(dú)立的持久數(shù)據(jù)存儲(chǔ)模塊,它的初衷是設(shè)計(jì)一個(gè)具有快速查詢能力的簡(jiǎn)單關(guān)系存儲(chǔ)模型,它將數(shù)據(jù)以KEY<->DATA的形式存儲(chǔ)在系統(tǒng)中,并提供由KEY到DATA的單向快速查詢。
comdb對(duì)外實(shí)現(xiàn)的功能
按單個(gè)key值實(shí)現(xiàn)data的獲取/添加/刪除/修改按多個(gè)key值實(shí)現(xiàn)data的批量的獲取/添加/刪除/修改與其他模塊支持長(zhǎng)短連接采用非對(duì)等線程模式進(jìn)行數(shù)據(jù)的更新和查詢對(duì)于線性增長(zhǎng)的key值,支持多機(jī)擴(kuò)展功能(comdbtrans)支持對(duì)數(shù)據(jù)的除重處理(comdb-elim)comdb作為一個(gè)通用的存儲(chǔ)模塊,為滿足不同種需求的需要,在設(shè)計(jì)上做了多種優(yōu)化和升級(jí),以下版本已經(jīng)完成設(shè)計(jì),在以后的一段日子里,會(huì)陸續(xù)發(fā)布:
支持64位key字段的comdb:采用hash_map實(shí)現(xiàn)的comdb,支持64位的key值查詢.單個(gè)comdb支持億級(jí)數(shù)據(jù)需要2G內(nèi)存左右,缺點(diǎn)是暫時(shí)沒(méi)有找到有效的數(shù)據(jù)組織方式,進(jìn)行線性的擴(kuò)容.支持一次讀寫的comdb:在大數(shù)據(jù)量隨機(jī)讀寫的應(yīng)用中,一次讀取與兩次讀取有較大的差異,此版本中,comdb對(duì)數(shù)據(jù)進(jìn)行一次讀取(普通comdb采用2次讀取的方式)支持壓縮的功能選項(xiàng):在文本數(shù)據(jù)的存儲(chǔ)中,壓縮處理是個(gè)不錯(cuò)的選擇,降低存儲(chǔ)成本的前提下,性能依然有50%的提高(要是所有數(shù)據(jù)都能壓縮就爽了:))支持DIRECT_IO讀數(shù)據(jù)選項(xiàng):在大數(shù)據(jù)量隨機(jī)讀取的應(yīng)用中,采用DIRECT_IO進(jìn)行數(shù)據(jù)讀取,可以有效的提高讀取效率。采用此選項(xiàng)建議前端采用cache機(jī)制。