12款免費與開源的NoSQL數據庫

Naresh Kumar是位軟件工程師與熱情的博主,對於編程與新事物擁有極大的興趣,很是樂於與其餘開發者和程序員分享技術上的研究成果。近日,Naresh撰文談到了12款知名的免費、開源NoSQL數據庫,並對這些數據庫的特色進行了分析。html

如今,NoSQL數據庫變得愈來愈流行,我在這裏總結出了一些很是棒的、免費且開源的NoSQL數據庫。在這些數據庫中,MongoDB獨佔鰲頭,擁有至關大的使用量。這些免費且開源的NoSQL數據庫具備很好的可伸縮性與靈活性,很是適合於大數據存儲與處理。相較於傳統的關係型數據庫,這些NoSQL數據庫在性能上具備很大的優點。然而,這些NoSQL數據庫未必最適合你。大多數常見的應用仍然可使用傳統的關係型數據庫進行開發。NoSQL數據庫依然不太適合於那些任務關鍵型的事務要求。我對這些數據庫進行了一些簡單介紹,下面就來看看。程序員

1. MongoDBsql

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

這是個自動複製的分佈式存儲系統。它提供了自動化的數據分區功能,透明的服務器失敗處理、可插拔的序列化功能、獨立的節點、數據版本化以及跨越各類數據中心的數據分發功能。

各位InfoQ讀者,不知在你的項目中曾經、如今或是將來使用了哪些NoSQL數據庫。現今的NoSQL世界紛繁複雜,NoSQL數據庫也多如牛毛,並且有一些數據庫提供了類似的特性,本文所列出的只是其中比較有表明性的12款NoSQL產品。你是否使用過他們呢?是否使用了本文沒有介紹的產品呢?他們有哪些特性打動了你,讓你決定使用他們呢?很是歡迎將你的經歷與見解與咱們一塊兒分享。

相關文章
相關標籤/搜索