NoSql 簡介


1. 概述

  1. NoSQL(Not Only SQL),"不僅僅是SQL", 泛指非關系型的數據庫;
  2. 特點:
    • 易擴展;
    • 在大數據量下,NoSQL 數據庫具有非常高的讀寫性能;
    • 多樣靈活的數據模型;
  3. RDBMS(關系型數據庫)和NoSQL 比較
    • RDBMS
      • 高度組織化結構化數據;
      • 結構化查詢語言(SQL);
      • 數據和關系都存儲在單獨的表中;
      • 數據操作語言,數據定義語言;
      • 嚴格的一致性;
      • 基礎事務;
    • NoSQL
      • 沒有聲明性查詢語言;
      • 沒有預定義的模式;
      • 鍵值對存儲,列存儲,文檔存儲,圖形數據庫;
      • 最終一致型,而非ACID屬性;
      • 非結構化和不可預知的數據;
      • CAP 定理;
      • 高性能,高可用性和可伸縮性;
  4. 3V + 3高
    • 大數據時代的3V
      • 海量(Volume)
      • 多樣(Variety)
      • 實時(Velocity)
    • 互聯網需求的3高
      • 高並發
      • 高可擴
      • 高性能

2. NoSQL 的數據模型

2.1 Bson

  • Bson 是一種類json的二進制形式的存儲格式,即Binary JSON;
  • 支持內嵌的文檔對象和數組對象;

2.2 聚合模型

  • KV 鍵值
  • Bson
  • 列族
  • 圖形

2.3 NoSQL 數據庫的四大分類

  • KV鍵值: Redis等;
  • 文檔型數據庫(bson格式比較多): MongoDB,基於分布式文件存儲的數據庫;
  • 列存儲數據庫: HBase,分布式文件系統;
  • 圖關系數據庫: 存放社交網絡,推薦系統等,專注於構建關系圖譜;

3. 在分布數據庫中CAP原理

3.1 CAP

  • C:Consistency(強一致性)
  • A:Availability(可用性)
  • P:Partition tolerance(分區容錯性)

3.2 CAP 原理

  1. CAP理論的核心是:一個分布式系統不可能同時很好的滿足一致性,可用性和分區容錯性這三個需求,最多只能同時
    較好的滿足兩個;
  2. 分區容錯性是必須要實現的;
  3. 根據CAP原理,將NoSQL數據庫分成了滿足CA原則,滿足CP原則和滿足AP原則三大類:
    • CA,單點集群,滿足一致性,可用性的系統,通常在擴展性上不太強大;(傳統Oracle數據庫)
    • CP,滿足一致性,分區容錯性的系統,通常性能不是特別高;(Redis,Mongodb)
    • AP,滿足可用性,分區容錯性的系統,通常可能對一致性要求低一些;(大多數網站架構的選擇)

4. BASE

  • BASE 就是為了解決關系數據庫強一致性引起的問題而引起的可用性降低,而提出的解決方案;
  • BASE
    • 基本可用(Basically Available)
    • 軟狀態(Soft state)
    • 最終一致(Eventually consistent)

5. 分布式和集群

  • 分布式:不同的多台服務器上面部署不同的服務模塊(工程),它們之間通過Rpc/Rmi之間通信和調用,對外提供服務和組內協作;
  • 集群:不同的多台服務器上面部署相同的服務模塊,通過分布式調度軟件進行統一的調度,對外提供服務和訪問;

參考資料


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM