2011年5款備受關注的開源 NoSQL 數據庫
memcached是一套分布式的快取系統,當初是Danga Interactive為了LiveJournal所發展的,但目前被許多軟件(如MediaWiki)所使用。這是一套開放源代碼軟件,以BSD license授權釋出。
memcached缺乏認證以及安全管制,這代表應該將memcached服務器放置在防火墻后。
memcached 的API使用三十二位元的循環冗余校驗(CRC-32)計算鍵值后,將資料分散在不同的機器上。當表格滿了以后,接下來新增的資料會以LRU機制替換掉。 由于memcached通常只是當作快取系統使用,所以使用memcached的應用程式在寫回較慢的系統時(像是后端的數據庫)需要額外的程式碼更新 memcached內的資料。
memcached具有多種語言的客戶端開發包,包括:Perl/PHP/JAVA/C/Python/Ruby/C#/MySQL/
2. 分布式K/V存儲方案 Cassandra
Apache Cassandra是一套開源分布式Key-Value存儲系統。它最初由非死book開發,用于儲存特別大的數據。非死book目前在使用此系統。
主要特性:
分布式
基于column的結構化
高伸展性
3. 開源NoSQL系統 Membase
Membase 是 NoSQL 家族的一個新的重量級的成員。
Membase 是開源項目,源代碼采用了Apache2.0的使用許可。該項目托管在GitHub.Source tarballs上,目前可以 下載beta版本的Linux二進制包。該產品主要是由North Scale的memcached核心團隊成員開發完成,其中還包括Zynga和NHN這兩個主要貢獻者的工程師,這兩個組織都是很大的在線游戲和社區網絡 空間的供應商。
Membase容易安裝、操作,可以從單節點方便的擴展到集群,而且為memcached(有線協議的兼容性)實現了即插 即用功能,在應用方面為開 發者和經營者提供了一個比較低的門檻。做為緩存解決方案,Memcached已經在不同類型的領域(特別是大容量的Web應用)有了廣泛的使用,其中 Memcached的部分基礎代碼被直接應用到了Membase服務器的前端。
4. 超高性能 key-value 數據庫 Redis
Redis 是一個高性能的key-value數據庫。 redis的出現,很大程度補償了memcached這類keyvalue存儲的不足,在部 分場合可以對關系數據庫起到很好的補充作用。它提供了Python,Ruby,Erlang,PHP客戶端,使用很方便。
性能測試結果:
SET操作每秒鐘 110000 次,GET操作每秒鐘 81000 次,服務器配置如下:
Linux 2.6, Xeon X3320 2.5Ghz.
stackoverflow 網站使用 Redis 做為緩存服務器。
5. 面向文檔的數據庫 CouchDB
Apache CouchDB 是一個面向文檔的數據庫管理系統。它提供以 JSON 作為數據格式的 REST 接口來對其進行操作,并可以通過視圖來操縱文檔的組織和呈現。 CouchDB 是 Apache 基金會的頂級開源項目。
CouchDB落實到最底層的數據結構就是兩類B+Tree 。