12款免費與開源的NoSQL資料庫介紹
來源:互聯網
上載者:User
關鍵字
提供
開源
可以
特性
Naresh Kumar是位軟體工程師與熱情的博主,對於程式設計與新事物擁有極大的興趣,非常樂於與其他開發者和程式師分享技術上的研究成果。 近日,Naresh撰文談到了12款知名的免費、開源NoSQL資料庫,並對這些資料庫的特點進行了分析。
現在,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資料庫。 現今的NoSQL世界紛繁複雜,NoSQL資料庫也多如牛毛,而且有一些資料庫提供了相似的特性,本文所列出的只是其中比較有代表性的12款NoSQL產品。 你是否使用過他們呢? 是否使用了本文沒有介紹的產品呢? 他們有哪些特性打動了你,讓你決定使用他們呢? 非常歡迎將你的經歷與看法與我們一起分享。