Michael Stonebraker是資料庫領域的佈道者。他對此領域瞭解很深,並幫助開發了一些最流行的資料庫系統,包括Postgres、Ingres和Vertica。StoneBraker近來提出NoSQL會被廣泛接受。
NoSQL通常具有如下優勢:
- 效能、擴充套件性更好
- 無模式或模式靈活
- 無共享架構
- 非同步
本文羅列了一些知名的NoSQL資料庫,希望能幫助開發者更好地選用NoSQL資料庫。
文件、鍵值類資料庫
- MongoDB:開源、面向文件,目前使用最廣泛。
- CounchDB:Apache旗下,基於Erlang的文件資料庫。也非常流行,npm即使用CouchDB。
- Couchbase:原名Membase,專注於互動類應用。
- Riak:分散式鍵值資料庫,支援資料複製和容錯。
- Redis:鍵值儲存。支援主從式複製、事務、Pub/Sub、Lua指令碼,常用於
- Dynamo:Amazonn S3中使用。
- Oracle NoSQL Database: Oracle旗下,支援事務ACID和JSON。
- Aerospike:支援混合記憶體架構,通過強一致性和可調一致性保證資料的完整性。
- Voldemort 支援備份的鍵值儲存。
- RavenDB: 基於.Net平臺。相容DDD.
- MarkLogic 基於XML的儲存架構。
大檔案儲存資料庫
- Cassandra:同樣是Apache旗下。分散式、容錯、彈性。
- HBase:Google的Bigtable的開源實現,基於Hadoop和HDFS。
- Apache Accumulo:Apache旗下又一款資料庫。同樣參考Google的BigTable設計,基於Apache Hadoop、Zookeeper和Thrift。
- Hypertable:另一個Bigtable實現,支援分片。
- Amazon SimpleDB:Amazon旗下。可以在AWS中使用。
- Azure Tables:MicroSoft旗下。可以通過Windows Azure雲服務使用。
Graph資料庫
- Neo4j:基於Java,支援ACID,可嵌入。
- InfiniteGraph:優勢在於遍歷物件間的複雜關係,支援分散式資料儲存。
- AllegroGraph:基於記憶體,十分高效,並結合了磁碟儲存,提供了高可擴充套件性,支援SPARQ、RDFS++和Prolog。
- OrientDB: 基於Java編寫,其實也可以算作文件型資料庫,但是記錄之間的關係管理採用graph資料庫的方式。支援全模式、混合模式和無模式。
- FlockDB: 開源、分散式,適合廣而淺的網路。最初Twitter使用這個儲存使用者間的關係。和其他graph資料庫不同,設計時針對的不是遍歷,而是快速的集合操作。
編撰 SegmentFault