現在,NoSQL 資料庫變得越來越流行,我在這裡總結出了一些非常棒的、免費且開源的 NoSQL 資料庫。在這些資料庫中,MongoDB 獨佔鰲頭,擁有相當大的使用量。這些免費且開源的 NoSQL 資料庫具有良好的可擴展性與靈活性,非常適合於大數據儲存與處理。相較於傳統的關聯式資料庫,這些 NoSQL 資料庫在效能上具有很大的優勢。
然而,這些 NoSQL 資料庫未必最適合你。大多數常見的應用仍然可以使用傳統的關係型資料庫進行開發。 NoSQL 資料庫仍然不太適合那些任務關鍵型的事務需求。我對這些資料庫做了一些簡單介紹,下面就來看看。
1. MongoDB
MongoDB 是個以文件為導向的資料庫,使用 JSON 風格的資料格式。它非常適合網站的資料儲存、內容管理與快取應用,並且透過配置可以實現複製與高可用性功能。
MongoDB 具有很強的可擴展性,效能表現優異。它使用 C 編寫,基於文檔存儲。此外,MongoDB 還支援全文檢索、跨 WAN 與 LAN 的高可用性、易於實現的複製、水平擴展、基於文件的豐富查詢、在資料處理與聚合等方面具有很強的靈活性。
2. Cassandra
這是Apache 軟體基金會的項目,Cassandra 是個分散式資料庫,支援分散的資料存儲,可以實現容錯以及無單點故障等。換句話說,「Cassandra 非常適合那些無法忍受資料遺失的應用」。
3. CouchDB
這也是 Apache 軟體基金會的一個項目,CouchDB 是另一個以文件為導向的資料庫,以 JSON 格式儲存資料。它相容於 ACID,像 MongoDB 一樣,CouchDB 也可以用於儲存網站的資料與內容,以及提供快取等。你可以透過 JavaScript 在 CouchDB 上執行 MapReduce 查詢。此外,CouchDB 還提供了一個非常方便的基於 Web 的管理控制台。它非常適合 Web 應用。
4. Hypertable
Hypertable 模仿的是 Google 的 BigTable 資料庫系統。 Hypertable 的創建者將「成為高可用、PB 規模的資料庫開源標準」作為 Hypertable 的目標。換言之,Hypertable 的設計目標是跨越多個廉價的伺服器可靠地儲存大量資料。
5. Redis
這是一個開源、進階的鍵值儲存。由於在鍵中使用了 hash、set、string、sorted set 及 list,因此 Redis 也稱為資料結構伺服器。這個系統可以幫助你執行原子操作,比如說增加 hash 中的值、集合的交集運算、字串拼接、差集與並集等。 Redis 透過記憶體中的資料集實現了高效能。此外,該資料庫還相容於大多數程式語言。
6. Riak
Riak 是最強大的分散式資料庫之一,它提供了輕鬆且可預測的伸縮能力,向用戶提供了快速測試、原型與應用部署能力,進而簡化應用的開發流程。
7. Neo4j
Neo4j 是一款 NoSQL 圖型資料庫,具有非常高的效能。它擁有一個健壯且成熟的系統的所有特性,向程式設計師提供了靈活且物件導向的網路結構,可以讓開發者充分享受擁有完整事務特性的資料庫的所有好處。相較於 RDBMS,Neo4j 也對某些應用提供了不少效能改進。
8. Hadoop HBase
HBase 是一款可伸縮、分散式的大數據儲存。它可以用在資料的即時與隨機存取的場景下。 HBase 擁有模組化與線性的可擴展性,並且能夠確保讀寫的嚴格一致性。 HBase 提供了一個 Java API,可實現輕鬆的客戶端存取;提供了可設定且自動化的表格分割功能;還有 Bloom 過濾器以及 block 快取等功能。
9. Couchbase
雖然 Couchbase 是 CouchDB 的衍生,不過它已經成為了一個功能完善的資料庫產品。它轉移到文件資料庫的趨勢會讓 MongoDB 感到壓力。每個節點上它都是多線程的,這是一個非常主要的可伸縮性優勢,特別是當託管在自訂或是 Bare-Metal 硬體上時更是如此。借助於一些非常棒的集成特性,諸如與 Hadoop 的集成,Couchbase 對於資料儲存來說是個非常不錯的選擇。
10. MemcacheDB
這是一個分散式的鍵值儲存系統,我們不應該將其與快取解決方案搞混;相反,它是個持久化存儲引擎,用於資料儲存並以非常快速且可靠的方式檢索資料。它遵循 memcache 協定。其儲存後端用於 Berkeley DB 中,支援諸如複製與事務等特性。
11. REVENDB
#RAVENDB 是第二代開源資料庫,它是針對文件儲存且無模式,這樣就可以輕鬆將物件儲存到其中了。它提供了非常靈活且快速的查詢,透過對複製、多租與分片提供開箱即用的支援使得我們可以非常輕鬆地實現伸縮功能。它對 ACID 事務提供了完整的支持,同時又能確保資料的安全性。除了高性能之外,它還透過 bundle 提供了輕鬆的可擴展性。
12. Voldemort
這是一個自動複製的分散式儲存系統。它提供了自動化的資料分區功能,透明的伺服器失敗處理、可插拔的序列化功能、獨立的節點、資料版本化以及跨越各種資料中心的資料分發功能。
以上是nosql資料庫有哪些的詳細內容。更多資訊請關注PHP中文網其他相關文章!