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