一、Nosql概述

1、為什么使用Nosql

1、單機(jī)Mysql時(shí)代

90年代,一個(gè)網(wǎng)站的訪問(wèn)量一般不會(huì)太大,單個(gè)數(shù)據(jù)庫(kù)完全夠用。隨著用戶增多,網(wǎng)站出現(xiàn)以下問(wèn)題

  1. 數(shù)據(jù)量增加到一定程度,單機(jī)數(shù)據(jù)庫(kù)就放不下了
  2. 數(shù)據(jù)的索引(B+ Tree),一個(gè)機(jī)器內(nèi)存也存放不下
  3. 訪問(wèn)量變大后(讀寫(xiě)混合),一臺(tái)服務(wù)器承受不住。

2、Memcached(緩存) + Mysql + 垂直拆分(讀寫(xiě)分離)

網(wǎng)站80%的情況都是在讀,每次都要去查詢數(shù)據(jù)庫(kù)的話就十分的麻煩!所以說(shuō)我們希望減輕數(shù)據(jù)庫(kù)的壓力,我們可以使用緩存來(lái)保證效率!

在這里插入圖片描述

優(yōu)化過(guò)程經(jīng)歷了以下幾個(gè)過(guò)程:

  1. 優(yōu)化數(shù)據(jù)庫(kù)的數(shù)據(jù)結(jié)構(gòu)和索引(難度大)
  2. 文件緩存,通過(guò)IO流獲取比每次都訪問(wèn)數(shù)據(jù)庫(kù)效率略高,但是流量爆炸式增長(zhǎng)時(shí)候,IO流也承受不了
  3. MemCache,當(dāng)時(shí)最熱門的技術(shù),通過(guò)在數(shù)據(jù)庫(kù)和數(shù)據(jù)庫(kù)訪問(wèn)層之間加上一層緩存,第一次訪問(wèn)時(shí)查詢數(shù)據(jù)庫(kù),將結(jié)果保存到緩存,后續(xù)的查詢先檢查緩存,若有直接拿去使用,效率顯著提升。

3、分庫(kù)分表 + 水平拆分 + Mysql集群

在這里插入圖片描述

4、如今最近的年代

如今信息量井噴式增長(zhǎng),各種各樣的數(shù)據(jù)出現(xiàn)(用戶定位數(shù)據(jù),圖片數(shù)據(jù)等),大數(shù)據(jù)的背景下關(guān)系型數(shù)據(jù)庫(kù)(RDBMS)無(wú)法滿足大量數(shù)據(jù)要求。Nosql數(shù)據(jù)庫(kù)就能輕松解決這些問(wèn)題。

目前一個(gè)基本的互聯(lián)網(wǎng)項(xiàng)目

在這里插入圖片描述

為什么要用NoSQL ?

用戶的個(gè)人信息,社交網(wǎng)絡(luò),地理位置。用戶自己產(chǎn)生的數(shù)據(jù),用戶日志等等爆發(fā)式增長(zhǎng)!
這時(shí)候我們就需要使用NoSQL數(shù)據(jù)庫(kù)的,Nosql可以很好的處理以上的情況!

2、什么是Nosql

NoSQL = Not Only SQL(不僅僅是SQL)

Not Only Structured Query Language

關(guān)系型數(shù)據(jù)庫(kù):列+行,同一個(gè)表下數(shù)據(jù)的結(jié)構(gòu)是一樣的。

非關(guān)系型數(shù)據(jù)庫(kù):數(shù)據(jù)存儲(chǔ)沒(méi)有固定的格式,并且可以進(jìn)行橫向擴(kuò)展。

NoSQL泛指非關(guān)系型數(shù)據(jù)庫(kù),隨著web2.0互聯(lián)網(wǎng)的誕生,傳統(tǒng)的關(guān)系型數(shù)據(jù)庫(kù)很難對(duì)付web2.0時(shí)代!尤其是超大規(guī)模的高并發(fā)的社區(qū),暴露出來(lái)很多難以克服的問(wèn)題,NoSQL在當(dāng)今大數(shù)據(jù)環(huán)境下發(fā)展的十分迅速,Redis是發(fā)展最快的。

3、Nosql特點(diǎn)

  1. 方便擴(kuò)展(數(shù)據(jù)之間沒(méi)有關(guān)系,很好擴(kuò)展!)

  2. 大數(shù)據(jù)量高性能(Redis一秒可以寫(xiě)8萬(wàn)次,讀11萬(wàn)次,NoSQL的緩存記錄級(jí),是一種細(xì)粒度的緩存,性能會(huì)比較高!)

  3. 數(shù)據(jù)類型是多樣型的!(不需要事先設(shè)計(jì)數(shù)據(jù)庫(kù),隨取隨用)

  4. 傳統(tǒng)的 RDBMS 和 NoSQL

    傳統(tǒng)的 RDBMS(關(guān)系型數(shù)據(jù)庫(kù))
    - 結(jié)構(gòu)化組織
    - SQL
    - 數(shù)據(jù)和關(guān)系都存在單獨(dú)的表中 row col
    - 操作,數(shù)據(jù)定義語(yǔ)言
    - 嚴(yán)格的一致性
    - 基礎(chǔ)的事務(wù)
    - ...
    
    Nosql
    - 不僅僅是數(shù)據(jù)
    - 沒(méi)有固定的查詢語(yǔ)言
    - 鍵值對(duì)存儲(chǔ),列存儲(chǔ),文檔存儲(chǔ),圖形數(shù)據(jù)庫(kù)(社交關(guān)系)
    - 最終一致性
    - CAP定理和BASE
    - 高性能,高可用,高擴(kuò)展
    - ...
    

了解:3V + 3高

大數(shù)據(jù)時(shí)代的3V :主要是描述問(wèn)題

  1. 海量Velume
  2. 多樣Variety
  3. 實(shí)時(shí)Velocity

大數(shù)據(jù)時(shí)代的3高 : 主要是對(duì)程序的要求

  1. 高并發(fā)
  2. 高可擴(kuò)
  3. 高性能

真正在公司中的實(shí)踐:NoSQL + RDBMS 一起使用才是最強(qiáng)的。

4、阿里巴巴演進(jìn)分析

推薦閱讀:阿里云的這群瘋子https://yq.aliyun.com/articles/653511

1

在這里插入圖片描述

商品信息
  • 一般存放在關(guān)系型數(shù)據(jù)庫(kù):Mysql,阿里巴巴使用的Mysql都是經(jīng)過(guò)內(nèi)部改動(dòng)的。
商品描述、評(píng)論(文字居多)
  • 文檔型數(shù)據(jù)庫(kù):MongoDB
圖片
  • 分布式文件系統(tǒng) FastDFS
  • 淘寶:TFS
  • Google: GFS
  • Hadoop: HDFS
  • 阿里云: oss
商品關(guān)鍵字 用于搜索
  • 搜索引擎:solr,elasticsearch
  • 阿里:Isearch 多隆
商品熱門的波段信息
  • 內(nèi)存數(shù)據(jù)庫(kù):Redis,Memcache
商品交易,外部支付接口
  • 第三方應(yīng)用

5、Nosql的四大分類

KV鍵值對(duì)

  • 新浪:Redis
  • 美團(tuán):Redis + Tair
  • 阿里、百度:Redis + Memcache

文檔型數(shù)據(jù)庫(kù)(bson數(shù)據(jù)格式):

  • MongoDB(掌握)
    • 基于分布式文件存儲(chǔ)的數(shù)據(jù)庫(kù)。C++編寫(xiě),用于處理大量文檔。
    • MongoDB是RDBMS和NoSQL的中間產(chǎn)品。MongoDB是非關(guān)系型數(shù)據(jù)庫(kù)中功能最豐富的,NoSQL中最像關(guān)系型數(shù)據(jù)庫(kù)的數(shù)據(jù)庫(kù)。
  • ConthDB

列存儲(chǔ)數(shù)據(jù)庫(kù)

  • HBase(大數(shù)據(jù)必學(xué))
  • 分布式文件系統(tǒng)

圖關(guān)系數(shù)據(jù)庫(kù)

用于廣告推薦,社交網(wǎng)絡(luò)

  • Neo4j、InfoGrid
分類 Examples舉例 典型應(yīng)用場(chǎng)景 數(shù)據(jù)模型 優(yōu)點(diǎn) 缺點(diǎn)
鍵值對(duì)(key-value) Tokyo Cabinet/Tyrant, Redis, Voldemort, Oracle BDB 內(nèi)容緩存,主要用于處理大量數(shù)據(jù)的高訪問(wèn)負(fù)載,也用于一些日志系統(tǒng)等等。 Key 指向 Value 的鍵值對(duì),通常用hash table來(lái)實(shí)現(xiàn) 查找速度快 數(shù)據(jù)無(wú)結(jié)構(gòu)化,通常只被當(dāng)作字符串或者二進(jìn)制數(shù)據(jù)
列存儲(chǔ)數(shù)據(jù)庫(kù) Cassandra, HBase, Riak 分布式的文件系統(tǒng) 以列簇式存儲(chǔ),將同一列數(shù)據(jù)存在一起 查找速度快,可擴(kuò)展性強(qiáng),更容易進(jìn)行分布式擴(kuò)展 功能相對(duì)局限
文檔型數(shù)據(jù)庫(kù) CouchDB, MongoDb Web應(yīng)用(與Key-Value類似,Value是結(jié)構(gòu)化的,不同的是數(shù)據(jù)庫(kù)能夠了解Value的內(nèi)容) Key-Value對(duì)應(yīng)的鍵值對(duì),Value為結(jié)構(gòu)化數(shù)據(jù) 數(shù)據(jù)結(jié)構(gòu)要求不嚴(yán)格,表結(jié)構(gòu)可變,不需要像關(guān)系型數(shù)據(jù)庫(kù)一樣需要預(yù)先定義表結(jié)構(gòu) 查詢性能不高,而且缺乏統(tǒng)一的查詢語(yǔ)法。
圖形(Graph)數(shù)據(jù)庫(kù) Neo4J, InfoGrid, Infinite Graph 社交網(wǎng)絡(luò),推薦系統(tǒng)等。專注于構(gòu)建關(guān)系圖譜 圖結(jié)構(gòu) 利用圖結(jié)構(gòu)相關(guān)算法。比如最短路徑尋址,N度關(guān)系查找等 很多時(shí)候需要對(duì)整個(gè)圖做計(jì)算才能得出需要的信息,而且這種結(jié)構(gòu)不太好做分布式的集群
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,321評(píng)論 6 543
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 99,559評(píng)論 3 429
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人,你說(shuō)我怎么就攤上這事。” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 178,442評(píng)論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我,道長(zhǎng),這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 63,835評(píng)論 1 317
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 72,581評(píng)論 6 412
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 55,922評(píng)論 1 328
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,931評(píng)論 3 447
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 43,096評(píng)論 0 290
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 49,639評(píng)論 1 336
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 41,374評(píng)論 3 358
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 43,591評(píng)論 1 374
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,104評(píng)論 5 364
  • 正文 年R本政府宣布,位于F島的核電站,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 44,789評(píng)論 3 349
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 35,196評(píng)論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 36,524評(píng)論 1 295
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 52,322評(píng)論 3 400
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 48,554評(píng)論 2 379

推薦閱讀更多精彩內(nèi)容

  • 一、為什么要用NoSql 用戶的個(gè)人信息、社交網(wǎng)絡(luò)、地理位置。用戶自己產(chǎn)生的數(shù)據(jù),用戶日志等爆發(fā)式增長(zhǎng)!每秒的數(shù)據(jù)...
  • 最近抽時(shí)間把Redis學(xué)了一下,所以就在網(wǎng)上找了一些資料。然后找到尚硅谷-周陽(yáng)老師的視頻教程,覺(jué)得里面的講的挺好。...
    MPPC閱讀 1,100評(píng)論 0 3
  • 前言 這個(gè)系列要講的是幾乎所有互聯(lián)網(wǎng)公司都在使用的Redis,Redis 適用于挺多的業(yè)務(wù)場(chǎng)景,比如會(huì)話存儲(chǔ)、數(shù)據(jù)...
    鄒志全閱讀 368評(píng)論 0 2
  • 前言 關(guān)于redis,最近在b站看了一個(gè)比較全面的視頻,并且與此同時(shí)打算做個(gè)筆記,為了更好的理解和以后的復(fù)習(xí)。ps...
    唯有努力不欺人丶閱讀 96評(píng)論 0 1
  • 一.能干嘛 1.易擴(kuò)展NoSQL數(shù)據(jù)庫(kù)種類繁多,但是一個(gè)共同的特點(diǎn)都是去掉關(guān)系數(shù)據(jù)庫(kù)的關(guān)系型特性。數(shù)據(jù)之間無(wú)關(guān)系,...
    碼農(nóng)GG閱讀 440評(píng)論 0 0