<mark id="5z1b5"><cite id="5z1b5"></cite></mark>

        <video id="5z1b5"></video>
          <noframes id="5z1b5"><ins id="5z1b5"></ins>

            <em id="5z1b5"></em>

            <dl id="5z1b5"><ins id="5z1b5"></ins></dl>

              NoSQL存儲

               NoSQL不僅僅是No SQL,還是Not only SQL,SQL代表傳統關系數據庫,NoSQL顯然是針對傳統關系數據庫的補充和升級。

              NoSQL分類:

              (1)Key-value stores鍵值存儲, 保存keys+BLOBs (二進制大對象Binary Large OBjects)
              (2)Table-oriented 面向表列, 主要有Google的BigTable和Cassandra.
              (3)Document-oriented面向文檔, 文本是一種類似XML文檔,MongoDB 和 CouchDB
              (4)Graph-oriented 面向圖論. 如Neo4J

                面向文檔與面向表列或鍵值存儲的區別:面向列族或鍵值存儲需要定義數據結構(半結構化),面向文檔無需結構(非結構化)。

                NoSQL與關系數據庫的區別:NoSQL絕對不支持Join。noSQL其實否定了關系數據庫的第二索引和join。joins導致數據庫切分sharding無法實施。見CAP定理。

              Nosql Cap

                NoSQL具體產品種類有:
              Google: Bigtable Amazon: Dynamo Amazon: SimpleDB Yahoo: HBase Microsoft: Dynomite Facebook: Cassandra LinkedIn: Voldemort

                NoSQL內部模式

              1. Distributed Hash Tables (DHT)分布式哈希
              2. Scalable 可伸縮
              3. Partitioned 分區
              4. Fault-tolerant 容錯
              5. Decentralized 非集中式
              6. Peer to peer 點對點
              7. Popularized
              8. Node ring 節點環
              9. Consistent Hashing 一致性哈希

              幾個主要NoSQL特點介紹:

              Redis
                關鍵點:超快Blazing fast ,IM data structure engine,支持五種,Key-value最簡單。只有Redis有事務機制 。
                適合: 不支持第二索引,在可以控制的數據庫大小情況下(放得下整個內存),快速改變數據,快速寫數據。
                案例:股票價格系統 分析,實時數據收集,聯系等等。
                Redis Cluster可以進行復制和手工failover.

              Redis安裝

              使用Spring Data + Redis實現緩存

              基于Spring+redis實現pub/sub

              apache camel和 redis

              Redis Cluster快速安裝指南

              介紹Redis數據結構set

              介紹Redis數據結構hash

              使用Redis創建分布式Java應用程序

              Redis概率數據結構之計數器HyperLogLog

              Redis概率數據結構之布隆過濾器

               

              Riak
                關鍵點: 容錯性Fault tolerance 失敗恢復  內置全文本搜索
                適合: 如果你希望有類似Cassandra-like (Dynamo-like)風格, 但是你不想處理器復雜性和膨脹性。單服務器有良好可伸縮性scalability, 可用性availability 和容錯性 fault-tolerance, 采取是昂貴的多站點復制multi-site replication.
                案例:銷售點數據收集,工廠控制系統,那些不能允許幾秒當機的場合。

                Uber的Ringpop和Riak?

              HBase
                關鍵點: 十億級別的行 X 百萬級別的列 大容量
                大表模型(高一致性)。
                Map/reduce with Hadoop 能夠實時獲得基于查詢的優化性能的節約型網關適合:
                適合:隨機 實時的讀寫操作,高吞吐量寫,隨機訪問大數據集。
                案例: Facebook 消息數據庫

              NOSQL之旅---HBase

              Cassandra
                鍵點: 繼承BigTable的列結構、Dynamo的最終一致性。
                按列查詢 寫快于讀 Map/reduce possible with Apache Hadoop
                適合: 當寫操作多于讀操作 (如logging).
                案例:: 銀行Banking, 金融系統,寫必須快于都的場合,實時的數據分析等.

              HBase和Cassandra 比較

                Hbase更加適合于數據倉庫、大型數據的處理和分析(如進行Web頁面的索引等)慢活。高一致性CP。

                Cassandra 則更適合于實時事務處理和提供交互型數據 ,快活,最終一致性AP。Cossip 完全對稱

              Cassandra專題

              HBase和Cassandra的擴展性

              CouchDB
                關鍵點: 最終一致性, 易用。
                寫操作不會阻塞讀操作。
                內部嵌入Hadoop之類map/reduce算法。
                實時更新。
                累計計算, 偶爾改變數據, 預先定義的查詢. 非常注重版本控制的場合. 舉例:: CRM, CMS系統.   主-主復制是其特別亮點,可以易于多個站點部署。

                Couch 適合實時性要求不高,易于使用。文本數據庫
                MVCC 模型:copy-on-modified?
                任何修改都會引起一個拷貝,這引起索引修改,再引起一個索引拷貝,以此類推:

                CouchDB 的長處正是Redis的短處
                Redis提供了簡單的索引機制和復雜的數據結構,而CouchDB提供的是復雜的索引和簡單的數據結構
                CouchDB:存儲大量的不易變但會被經常查詢的大量的文檔型數據。
                Redis :存儲小量的常變數據,存儲實時數據 。

              CouchDB的安裝使用教程

              CouchDB和MongoDB的擴展性

               

              Couchbase 
                Couchbase基于Membase與CouchDB開發了一款個面向文檔的數據庫,Membase是個鍵/值、持久化、可伸縮的解決方案,使用了memcached wire協議。因此,對于數據的讀寫來說都能提供低延遲的訪問。

                與CouchDB區別:Couchbase產品包含了CouchDB的一個副本。Couchbase產品向CouchDB添加了緩存、集群等功能,

                Couchbase在內部數據中心使用Membase風格的復制,在數據中心之間使用CouchDB風格的復制,支持碰撞檢測和決議。

              Couchbase + Angular + Node.js教程


              MongoDB
                關鍵點: 強迫性一致;類SQL,容易上手 , 內置分片碎片
                適合: 需要動態查詢. 愿意事先定義索引indexes, 需要巨大的數據庫有良好性能。
                案例:適合90%所有MySQL等RDBM場合。
                問題:數據集大于內存很慢。
                MongoDB 使用MapReduce替代SQL的聚合功能進行分析,但是當前是單線程,并不可伸縮。

              MongoDB安裝和Java使用教程

              MongoDB的優化鎖

              MongoDB + Morphia使用

              MongoDB專題與教程



              NEO4J
                圖數據庫,適合社會網絡應用 LinkedIn Facebook 文件系統 角色關系
                由nodes, relationships and properties.組成
                內存中的節點圖,自動持久。

               

              相關參考:

              可擴展伸縮架構中的狀態

              Nosql概述介紹

              NoSQL數據建模

              為什么大部分NoSQL不提供分布式事務?

              最終一致性其實比MVCC簡單

              2009年柏林的NoSQL(非關系數據庫) 大會

              Cassandra HBase和MongoDb性能比較

              選擇NoSQL的幾種理由

              NoSQL數據庫大比拼: Cassandra, HBase, MongoDB, Riak

              數據庫緩存

              Scalable可伸縮性詳細設計

              淘寶數據魔方的系統架構

              CAP原理和BASE思想

              數據庫已死

              NoDBA(干掉數據庫管理員)

              事務機制

              NoSQL專題

              關系數據庫專題

              可伸縮性

              大數據

              分布式系統

              美女漫画大全