【NoSQL】NoSQL入门和概述 - 笔记
NoSQL入門和概述
BSON
BSON 是一種計算機數據交換格式,主要被用作MongoDB數據庫中的數據存儲和網絡傳輸格式。它是一種二進制表示形式,能用來表示簡單數據結構、關聯數組(MongoDB中稱為“對象”或“文檔”)以及MongoDB中的各種數據類型。BSON之名緣于JSON,含義為Binary JSON(二進制JSON)。
優點:高并發的操作是不太建議有JOIN關聯查詢的,互聯網公司用冗余數據來避免關聯查詢。分布式事務有多個庫,是支持不了太多的并發的。使用NoSQL可以避開大量的JOIN關聯查詢。
聚合模型(區分于關系型數據庫的int, varchar, …)
- KV鍵值對
- BSON
- 列族
- 圖形
NoSQL數據庫的四大分類
現在一些小公司的互聯網技術,是一線互聯網員工跳槽帶出來的熟練技術,成為小公司的技術核心骨干,因為小公司試錯成本較低,希望直接使用成熟可靠的技術/團隊。大公司有比較大的試錯空間,自己研究新技術。所以如果大公司用什么技術,慢慢地,這些技術就會流行起來。
KV鍵值:典型介紹
- 新浪:BerkeleyDB+redis
- 美團:redis+tair
- 阿里、百度:memcache+redis
文檔型數據庫(bson格式比較多)
- CouchDB
- MongoDB:是一個基于分布式文件存儲的數據庫,C++編寫,是一個介于關系型數據庫與非關系型數據庫之間的產品??梢钥醋鍪荕ySQL++
列存儲數據庫
- Cassandra,Hbase:Hadoop使用
- 分布式文件系統
圖關系數據庫:不是存放圖片的,放的是關系。比如:朋友圈社交網絡、廣告推薦系統等。專注于構建關系圖譜
- Neo4J,Infogrid
四者對比
在分布式數據庫中 CAP 原理 CAP+BASE
新技術都是在老技術上繼承下來的
傳統的ACID分別是什么?原子性、一執行、獨立性、持久性
CAP:強一致性、可用性、分區容錯性
CAP理論就是說在分布式存儲系統中,最多只能實現上面的兩點。
而由于當前的網絡硬件肯定會出現延遲丟包等問題,所以:P - 分區容忍性 是我們必須要實現的
所以我們只能在一致性和可用性之間進行權衡,沒有NoSQL系統能同時保證這三點
- C:強一致性(例如,點贊數、評論數是否準確)
- A:高可用性(例如,網站不能掛)
- P:分布式容忍性(必須要有)
CA:傳統Oracle數據庫
AP:大多數網站架構的選擇(弱一致性+AP)
CP:Redis、MongoDB
Redis的作用是幫MySQL,Oracle減負
一致性與可用性的抉擇
比如,發一條微博之后,過幾秒粉絲才能看到;但是自己能看到自己的(首先保證:讀己之所寫),但是別的小伙伴要等數據庫傳一下,實現強一致。
BASE
為了取得最終的一致性(雙十一當天可能統計不準,但過幾天一定要達到最終準確。)
分布式 + 集群簡介
負載均衡:比如有多個tomcat,不同的請求分發給不同的tomcat處理
總結
以上是生活随笔為你收集整理的【NoSQL】NoSQL入门和概述 - 笔记的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【MS Word技巧】word如何批量把
- 下一篇: 【MySQL】[ERR] 1273 -