NoSql 簡介
1. 概述
- NoSQL(Not Only SQL),"不單單是SQL", 泛指非關係型的數據庫;
- 特色:
- 易擴展;
- 在大數據量下,NoSQL 數據庫具備很是高的讀寫性能;
- 多樣靈活的數據模型;
- RDBMS(關係型數據庫)和NoSQL 比較
- RDBMS
- 高度組織化結構化數據;
- 結構化查詢語言(SQL);
- 數據和關係都存儲在單獨的表中;
- 數據操做語言,數據定義語言;
- 嚴格的一致性;
- 基礎事務;
- NoSQL
- 沒有聲明性查詢語言;
- 沒有預約義的模式;
- 鍵值對存儲,列存儲,文檔存儲,圖形數據庫;
- 最終一致型,而非ACID屬性;
- 非結構化和不可預知的數據;
- CAP 定理;
- 高性能,高可用性和可伸縮性;
- 3V + 3高
- 大數據時代的3V
- 海量(Volume)
- 多樣(Variety)
- 實時(Velocity)
- 互聯網需求的3高
2. NoSQL 的數據模型
2.1 Bson
- Bson 是一種類json的二進制形式的存儲格式,即Binary JSON;
- 支持內嵌的文檔對象和數組對象;
2.2 聚合模型
2.3 NoSQL 數據庫的四大分類
- KV鍵值: Redis等;
- 文檔型數據庫(bson格式比較多): MongoDB,基於分佈式文件存儲的數據庫;
- 列存儲數據庫: HBase,分佈式文件系統;
- 圖關係數據庫: 存放社交網絡,推薦系統等,專一於構建關係圖譜;
3. 在分佈數據庫中CAP原理
3.1 CAP
- C:Consistency(強一致性)
- A:Availability(可用性)
- P:Partition tolerance(分區容錯性)
3.2 CAP 原理
- CAP理論的核心是:一個分佈式系統不可能同時很好的知足一致性,可用性和分區容錯性這三個需求,最多隻能同時
較好的知足兩個;
- 分區容錯性是必需要實現的;
- 根據CAP原理,將NoSQL數據庫分紅了知足CA原則,知足CP原則和知足AP原則三大類:
- CA,單點集羣,知足一致性,可用性的系統,一般在擴展性上不太強大;(傳統Oracle數據庫)
- CP,知足一致性,分區容錯性的系統,一般性能不是特別高;(Redis,Mongodb)
- AP,知足可用性,分區容錯性的系統,一般可能對一致性要求低一些;(大多數網站架構的選擇)
![](http://static.javashuo.com/static/loading.gif)
4. BASE
- BASE 就是爲了解決關係數據庫強一致性引發的問題而引發的可用性下降,而提出的解決方案;
- BASE
- 基本可用(Basically Available)
- 軟狀態(Soft state)
- 最終一致(Eventually consistent)
5. 分佈式和集羣
- 分佈式:不一樣的多臺服務器上面部署不一樣的服務模塊(工程),它們之間經過Rpc/Rmi之間通訊和調用,對外提供服務和組內協做;
- 集羣:不一樣的多臺服務器上面部署相同的服務模塊,經過分佈式調度軟件進行統一的調度,對外提供服務和訪問;
參考資料sql
歡迎關注本站公眾號,獲取更多信息