狼愛上貍

          我胡漢三又回來了

          2010年10大熱門的開源NoSQL服務器軟件

          NoSQL,就是反SQL,是一項全新的數據庫革新運動,特別是在 2010 年得以迅猛發展。而各種開源的 NoSQL 軟件突然間涌現在你面前。目前似乎沒有對 NoSQL 給出一個標準的定義,也沒有相應的規范,但從這些軟件可以看出 NoSQL 軟件的共同點:獨立運行、K/V存儲結構,這之前有人稱之為集中式緩存服務,其實你可以把二者等同起來。

          那么多的 NoSQL 軟件,到底哪些更受歡迎呢?為此,開源中國社區為你評選出10款2010年最受關注的 NoSQL 軟件。

           

          1. Cassandra

          Cassandra 在 2010 年出盡風頭,但最終都以失敗告終,包括 Twitter 以及 Digg 的案例使我們不得不對 NoSQL 技術是否成熟,是否能在大規模系統中應用產生了懷疑。但這并不影響 Cassandra 拔得頭籌,因為還有 Facebook 的支持。

          Apache Cassandra 是一套開源分布式Key-Value存儲系統。它最初由Facebook開發,用于儲存特別大的數據。Facebook目前在使用此系統

          主要特性:

          • 分布式
          • 基于column的結構化
          • 高伸展性

          Cassandra 采用 Java 開發,Apache 授權協議。

           

          2. memcached

          memcached 是老牌的獨立緩存服務的領頭羊,目前國內使用該系統的網站非常的多,在這基礎上還有國內開發的 memcachedb 是 memcached 支持持久化存儲。

          memcached 是一套分布式的快取系統,當初是Danga Interactive為了LiveJournal所發展的,但目前被許多軟件(如MediaWiki)所使用。不過,memcached 缺乏認證以及安全管制

          memcached 采用 C 語言開發,可在 Linux 系統下使用,采用 BSD 授權。

           

          3. Membase

          Membase 是 NoSQL 家族的一個新的重量級的成員,其完全兼容 memcached 的方式,有望籠絡 memcached 的用戶群。Membase 的可伸縮性、集群、復制以及管理方便等特性又是 memcached 無法匹敵的。

          Membase 同樣采用 C 語言開發,支持 Windows 和 Linux 系統,使用 Apache 授權協議。

           

          接下來介紹兩款國產的 NoSQL 軟件:

          4. Tair

          Tair 是由淘寶網自主開發的分布式Key/Value結構數據存儲系統,在淘寶網有著大規模的應用。您在登錄淘寶、查看商品詳情頁面或者在淘江湖和好友“搗漿糊”的時候,都在直接或間接地和Tair交互。

          Tair 采用 C 語言開發,支持 Linux 系統,使用 GPLv2 授權協議。

           

          5. BeansDB

          BeansDB 是豆瓣網開發的一個主要針對大數據量、高可用性的分布式Key Value存儲系統,采用HashTree和簡化的版本號來快速同步保證最終一致性(弱),一個簡化版的 Dynamo

          它采用類似memcached的去中心化結構,在客戶端實現數據路由。目前只提供了 Python版本的客戶端,其它語言的客戶端可以由memcached的客戶端稍加改造得到。

          主要特性包括:

          • 高可用:通過多個可讀寫的用于備份實現高可用;
          • 最終一致性:通過哈希樹實現快速完整數據同步(短時間內數據可能不一致);
          • 容易擴展:可以在不中斷服務的情況下進行容量擴展;
          • 高性能:異步IO和高性能的Key Value數據Tokyo Cabinet
          • 可配置的可用性和一致性:通過N,W,R進行配置;
          • 簡單協議:Memcached兼容協議,大量可用客戶端。

          BeansDB 采用 Python 語言開發,支持 Linux 系統,使用 BSD 授權協議。

           

          6. Redis

          Redis 是一個高性能的key-value數據庫。 redis的 出現,很大程度補償了memcached這類keyvalue存儲的不足,在部分場合可以對關系數據庫起到很好的補充作用。它提供了Python,Ruby,Erlang,PHP客戶端,使用很方便。

          Redis 的短板:

          • 這個項目還很新,可能還不足夠穩定,而且沒有在實際的一些大型系統應用的實例。
          • 缺乏mc中批量get也是比較大的問題,始終批量獲取跟多次獲取的網絡開銷是不一樣的。

          Redis 采用 C 語言開發,支持 Linux 系統,使用 BSD 授權協議。

           

          7.  CouchDB

          Apache CouchDB 是一個面向文檔的數據庫管理系統。它提供以 JSON 作為數據格式的 REST 接口來對其進行操作,并可以通過視圖來操縱文檔的組織和呈現。 CouchDB 是 Apache 基金會的頂級開源項目。

          CouchDB落實到最底層的數據結構就是兩類B+Tree 。

          不過最近有消息說 CouchDB 將走一條不同于 NoSQL 的路子,具體情況如何我們只能拭目以待。

          CouchDB 是用 ErLang 開發的哦,跨平臺支持,Apache 授權協議。

           

          8. Tokyo Cabinet

          Tokyo Cabinet 是一個DBM的實現。這里的數據庫由一系列key-value對的記錄構成。key和value都可以是任意長度的字節序列,既可以是二進制也可以是字符串。這里沒有數據類型和數據表的概念。

          當做為Hash表數據庫使用時,每個key必須是不同的,因此無法存儲兩個key相同的值。提供了以下訪問方法:提供key,value參數來存儲,按 key刪除記錄,按key來讀取記錄,另外,遍歷key也被支持,雖然順序是任意的不能被保證。這些方法跟Unix標準的DBM,例如GDBM,NDBM 等等是相同的,但是比它們的性能要好得多(因此可以替代它們)

          當按B+樹來存儲時,擁用相同key的記錄也能被存儲。像hash表一 樣的讀取,存儲,刪除函數也都有提供。記錄按照用戶提供的比較函數來存儲。可以采用順序或倒序的游標來讀取每一條記錄。依照這個原理,向前的字符串匹配搜 索和整數區間搜索也實現了。另外,B+樹的事務也是可用的。

          Tokyo Cabinet 采用 C 語言開發,支持 Linux 系統,使用 LGPL 授權協議。

           

          9. OrientDB

          Orient DB 是一個可伸縮的文檔數據庫,支持 ACID 事務處理。使用 Java 5 實現。OrientDB 最強的一個地方是可以使用 類 SQL 的查詢語句進行數據查詢。

           

          OrientDB 采用 Java 語言開發,跨平臺支持,使用 Apache 授權協議。

           

          10. Hibari

          Hibari (在日語中意思為“云雀”)是一個專為高可靠性和大數據存儲的數據庫引擎,可用于云計算環境中,例如 webmail、SNS 和其他要求T/P級數據存儲的環境中。Hibari 支持 Java, C/C++, Python, Ruby, 和 Erlang 語言的客戶端。

          Hibari 并不是一個關系數據庫,主要是通過 key-value 的方法進行數據存儲。

          Hibari 使用 ErLang 語言開發,支持 Linux/BSD 系統,Apache 授權協議。


          來自:http://www.oschina.net/news/14209/2010-top-10-nosql-projects

          posted on 2011-03-17 10:07 狼愛上貍 閱讀(333) 評論(0)  編輯  收藏 所屬分類: NoSQL


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 富源县| 孟村| 富宁县| 广东省| 冷水江市| 平潭县| 吉林省| 大荔县| 孝义市| 昌乐县| 彝良县| 松桃| 凤凰县| 炉霍县| 萨嘎县| 延庆县| 定远县| 靖宇县| 全南县| 沭阳县| 五台县| 安国市| 白河县| 武隆县| 阳东县| 东明县| 西丰县| 任丘市| 昆明市| 钟山县| 绥化市| 太白县| 政和县| 尼玛县| 开原市| 泰州市| 枣阳市| 当雄县| 白银市| 焦作市| 和林格尔县|