主流nosql数据库对比
目前開(kāi)源的NOSQL數(shù)據(jù)庫(kù)有,Redis,Tokyo Cabinet,Cassandra,Voldemort,MongoDB,Dynomite,HBase,CouchDB,Hypertable,?
Riak,Tin,?Flare,Lightcloud,?KiokuDB,Scalaris,Kai,ThruDB等等。
?
一、滿足極高讀寫性能需求的Kye-Value數(shù)據(jù)庫(kù):Redis,Tokyo Cabinet,?Flare?
高性能Key-Value數(shù)據(jù)庫(kù)的主要特點(diǎn)就是具有極高的并發(fā)讀寫性能,Redis,Tokyo Cabinet,?Flare,這3個(gè)Key-Value DB都是用C編寫的,他們的性能都相當(dāng)出色。?
二、滿足海量存儲(chǔ)需求和訪問(wèn)的面向文檔的數(shù)據(jù)庫(kù):MongoDB,CouchDB
三、滿足高可擴(kuò)展性和可用性的面向分布式計(jì)算的數(shù)據(jù)庫(kù):Cassandra,Voldemort
?
表一?主流NOSQL簡(jiǎn)單對(duì)比
參考:http://kkovacs.eu/cassandra-vs-mongodb-vs-couchdb-vs-redis
| ? | Cassandra | Mongodb | CouchDB | Redis | Riak | HBase |
| 開(kāi)發(fā)語(yǔ)言 | JAVA | C++ | Erlang | C / C++ | Erlang/ C / JAVASCRIPT | JAVA |
| 特點(diǎn) | 分布式與復(fù)制的權(quán)衡 根據(jù)列和鍵范圍進(jìn)行查詢 BigTable類似的功能:列,列族 寫比讀快很多 | 主從復(fù)制 查詢利用javascript表達(dá)式 比CouchDB更容易就地升級(jí) 內(nèi)置Sharding 數(shù)據(jù)存儲(chǔ)使用的是內(nèi)存映射文件 數(shù)據(jù)庫(kù)崩潰后需要對(duì)表進(jìn)行修復(fù) 持久性更好 | 雙向復(fù)制 主主復(fù)制(master-master replication) 沖突檢測(cè) 多版本并發(fā)控制,寫操作不會(huì)阻塞讀取 通用的技術(shù)文檔 只崩潰設(shè)計(jì)Crash-only 需要經(jīng)常壓縮 視圖:嵌入式map/reduce 格式化視圖:lists & shows 服務(wù)器端文檔驗(yàn)證可行 身份驗(yàn)證可行 通過(guò)_changes實(shí)時(shí)更新 附件處理 | 內(nèi)存數(shù)據(jù)庫(kù) 主從復(fù)制 簡(jiǎn)單的Key-Value 操作符較為復(fù)雜,如 ZREVRANGEBYS CORE?INCR & co (有利于速率限制和統(tǒng)計(jì)) 有集合 (union/diff/inter) 有列表 (a queue; blocking pop) 有散列(多字段對(duì)象) NoSQL中唯一處理交易的數(shù)據(jù)庫(kù) | 分布式與復(fù)制的權(quán)衡post-commit和pre-commit hooks 安全性驗(yàn)證 內(nèi)置的全文檢索 Javascript或 Erlang Map/reduce | 分布式與復(fù)制的權(quán)衡 模仿BigTable Map/reduce Hadoop 利用服務(wù)器端掃描進(jìn)行查詢預(yù)測(cè)疊加并獲取過(guò)濾 優(yōu)化的實(shí)時(shí)查詢 高性能Thrift網(wǎng)關(guān) HTTP支持XML、Protobuf和二進(jìn)制 Cascading、hive、 pig source和sink模塊 基于Jruby的shell 無(wú)單點(diǎn)故障 類似MySQL的隨機(jī)訪問(wèn)性能 |
| 證書 | Apache | Apache | Apache | BSD | Apache | Apache |
| 協(xié)議 | 自定義/Thrift | 自定義/BSON | HTTP/REST | Telnet-Like | HTTP/REST | HTTP/REST/Thrift |
| 最佳適用 | 基于JAVA,寫操作較多,讀少 | 動(dòng)態(tài)的查詢,定義索引而非map/reduce。數(shù)據(jù)變化快,磁盤不夠用,可以使用MongoDB | 有大量數(shù)據(jù),但更新不大,需要預(yù)先定義查詢 | 數(shù)據(jù)快速變化,數(shù)據(jù)庫(kù)大小可以預(yù)見(jiàn)(適合內(nèi)存存取數(shù)據(jù)) | 簡(jiǎn)單的類似Cassandra 或Dynamo的功能,較強(qiáng)的單點(diǎn)容錯(cuò)性和擴(kuò)展性 | 隨機(jī)數(shù)據(jù)、實(shí)時(shí)讀取海量數(shù)據(jù) |
| 應(yīng)用場(chǎng)景 | 銀行,金融行業(yè)。數(shù)據(jù)分析 | MySQL或 PostgreSQL 的替代品 | CRM、CMS系統(tǒng) | 股價(jià)系統(tǒng),數(shù)據(jù)分析,實(shí)時(shí)數(shù)據(jù)采集以及實(shí)時(shí)通信場(chǎng)景 | 銷售點(diǎn)數(shù)據(jù)采集。工廠控制系統(tǒng)。需要零停機(jī)時(shí)間的場(chǎng)景 | 喜歡bigTable,需要隨即、實(shí)時(shí)的讀寫大數(shù)據(jù)(Big Data) |
?
總結(jié)
以上是生活随笔為你收集整理的主流nosql数据库对比的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 如何在linux系统下使用百度云盘上传下
- 下一篇: java 与 SQL 的邂逅 之二 (简