NoSQL資料庫概述,從0開始

2020-10-02 13:00:09

設計性框架:Struts,spring,springmvc

持久層框架:hebernate,mybatis

快取資料庫:減少IO操作

NoSQL資料庫概述:

NoSQL(Not only SQL),不僅僅是sql,泛指非關係型的資料庫

noSQL 以Key-value模式儲存

不遵循SQL標準,不支援ACID

ACID:A(Atomicity)原子性、C(Consistency)一致性、I(Isolation)獨立性、D(Durability)永續性

 

Nosql適用的場景:

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

對資料高並行的讀寫

海量資料讀寫

對資料高可延伸性的

Nosq不l適用的場景:

需要事務支援

基於sql的結構化查詢儲存,處理複雜的關係,需要即席查詢

 

Memcached 和 redis 的區別

1、memcached一般不支援資料持久化,redis支援持久化

2、memcached只支援簡單的key-value模式,redis支援五種資料結構儲存(String,set,list,hash,zset)

 

 

CAP原理

 

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

CAP理論的核心是:一個分散式系統不可能同時很好的滿足一致性、可用性、分割區容錯性這個三個需求,最多隻能同時較好的滿足兩個。

因此,根據CAP原理將NoSQL資料庫分成了滿足CA原則,CP原則和滿足AP原則三大類

CAP三進二

P :分割區容忍性是我們必須需要實現的

CA:  傳統Oracle資料庫

AP:大多數網站架構的選擇(比如雙十一瀏覽量巨大,很難精確統計所有資料,強一致性不好實現)弱一致性+AP

CP:  Redis  

等到雙十一過了之後,還要統計資料的最終一致性

BASE的思想是通過讓系統放鬆對某一時刻資料一致性的要求來換取系統整體伸縮性和效能上的改觀。也就是說,犧牲了C,成就了AP、

 

分散式和叢集