<optgroup id="2ys2g"><button id="2ys2g"></button></optgroup>
  • <small id="2ys2g"><tr id="2ys2g"></tr></small>

    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專題

    關系數據庫專題

    可伸縮性

    大數據

    分布式系統

    美女漫画大全