redis(一) NoSql入門和概述(上)

1. NoSql入門和概述

1.1) 互聯(lián)網(wǎng)時(shí)代背景下大機(jī)遇官份,為什么用nosql

1.1.1 單機(jī)MySQL的美好年代

在90年代,一個(gè)網(wǎng)站的訪問量一般都不大速妖,用單個(gè)數(shù)據(jù)庫完全可以輕松應(yīng)付。
在那個(gè)時(shí)候,更多的都是靜態(tài)網(wǎng)頁而芥,動(dòng)態(tài)交互類型的網(wǎng)站不多


image.png

上述架構(gòu)下,我們來看看數(shù)據(jù)存儲(chǔ)的瓶頸是什么膀值?
1.數(shù)據(jù)量的總大小 一個(gè)機(jī)器放不下時(shí)
2.數(shù)據(jù)的索引(B+ Tree)一個(gè)機(jī)器的內(nèi)存放不下時(shí)
3.訪問量(讀寫混合)一個(gè)實(shí)例不能承受
如果滿足了上述1 or 3個(gè)棍丐,進(jìn)化......

1.1.2 Memcached(緩存)+MySQL+垂直拆分

后來,隨著訪問量的上升沧踏,幾乎大部分使用MySQL架構(gòu)的網(wǎng)站在數(shù)據(jù)庫上都開始出現(xiàn)了性能問題歌逢,web程序不再僅僅專注在功能上,同時(shí)也在追求性能翘狱。程序員們開始大量的使用緩存技術(shù)來緩解數(shù)據(jù)庫的壓力秘案,優(yōu)化數(shù)據(jù)庫的結(jié)構(gòu)和索引。開始比較流行的是通過文件緩存來緩解數(shù)據(jù)庫壓力盒蟆,但是當(dāng)訪問量繼續(xù)增大的時(shí)候踏烙,多臺(tái)web機(jī)器通過文件緩存不能共享,大量的小文件緩存也帶了了比較高的IO壓力历等。在這個(gè)時(shí)候讨惩,Memcached就自然的成為一個(gè)非常時(shí)尚的技術(shù)產(chǎn)品

image.png

Memcached作為一個(gè)獨(dú)立的分布式的緩存服務(wù)器寒屯,為多個(gè)web服務(wù)器提供了一個(gè)共享的高性能緩存服務(wù)荐捻,在Memcached服務(wù)器上,又發(fā)展了根據(jù)hash算法來進(jìn)行多臺(tái)Memcached緩存服務(wù)的擴(kuò)展寡夹,然后又出現(xiàn)了一致性hash來解決增加或減少緩存服務(wù)器導(dǎo)致重新hash帶來的大量緩存失效的弊端

1.1.3 Mysql主從讀寫分離

由于數(shù)據(jù)庫的寫入壓力增加处面,Memcached只能緩解數(shù)據(jù)庫的讀取壓力。讀寫集中在一個(gè)數(shù)據(jù)庫上讓數(shù)據(jù)庫不堪重負(fù)菩掏,大部分網(wǎng)站開始使用主從復(fù)制技術(shù)來達(dá)到讀寫分離魂角,以提高讀寫性能和讀庫的可擴(kuò)展性。Mysql的master-slave模式成為這個(gè)時(shí)候的網(wǎng)站標(biāo)配了智绸。


image.png

1.1.4 分表分庫+水平拆分+mysql集群

在Memcached的高速緩存野揪,MySQL的主從復(fù)制访忿,讀寫分離的基礎(chǔ)之上,這時(shí)MySQL主庫的寫壓力開始出現(xiàn)瓶頸斯稳,而數(shù)據(jù)量的持續(xù)猛增海铆,由于MyISAM使用表鎖,在高并發(fā)下會(huì)出現(xiàn)嚴(yán)重的鎖問題挣惰,大量的高并發(fā)MySQL應(yīng)用開始使用InnoDB引擎代替MyISAM卧斟。

同時(shí),開始流行使用分表分庫來緩解寫壓力和數(shù)據(jù)增長(zhǎng)的擴(kuò)展問題憎茂。這個(gè)時(shí)候珍语,分表分庫成了一個(gè)熱門技術(shù),是面試的熱門問題也是業(yè)界討論的熱門技術(shù)問題唇辨。也就在這個(gè)時(shí)候廊酣,MySQL推出了還不太穩(wěn)定的表分區(qū)能耻,這也給技術(shù)實(shí)力一般的公司帶來了希望赏枚。雖然MySQL推出了MySQL Cluster集群,但性能也不能很好滿足互聯(lián)網(wǎng)的要求晓猛,只是在高可靠性上提供了非常大的保證饿幅。


image.png

1.1.5 MySQL的擴(kuò)展性瓶頸

MySQL數(shù)據(jù)庫也經(jīng)常存儲(chǔ)一些大文本字段,導(dǎo)致數(shù)據(jù)庫表非常的大戒职,在做數(shù)據(jù)庫恢復(fù)的時(shí)候就導(dǎo)致非常的慢栗恩,不容易快速恢復(fù)數(shù)據(jù)庫。比如1000萬4KB大小的文本就接近40GB的大小洪燥,如果能把這些數(shù)據(jù)從MySQL省去磕秤,MySQL將變得非常的小。關(guān)系數(shù)據(jù)庫很強(qiáng)大捧韵,但是它并不能很好的應(yīng)付所有的應(yīng)用場(chǎng)景市咆。MySQL的擴(kuò)展性差(需要復(fù)雜的技術(shù)來實(shí)現(xiàn)),大數(shù)據(jù)下IO壓力大再来,表結(jié)構(gòu)更改困難蒙兰,正是當(dāng)前使用MySQL的開發(fā)人員面臨的問題。

1.1.6 今天是什么樣子芒篷?搜变?

image.png

1.1.7 為什么用NoSQL

今天我們可以通過第三方平臺(tái)(如:Google,Facebook等)可以很容易的訪問和抓取數(shù)據(jù)。用戶的個(gè)人信息针炉,社交網(wǎng)絡(luò)挠他,地理位置,用戶生成的數(shù)據(jù)和用戶操作日志已經(jīng)成倍的增加篡帕。我們?nèi)绻獙?duì)這些用戶數(shù)據(jù)進(jìn)行挖掘殖侵,那SQL數(shù)據(jù)庫已經(jīng)不適合這些應(yīng)用了, NoSQL數(shù)據(jù)庫的發(fā)展也卻能很好的處理這些大的數(shù)據(jù)摔蓝。

image.png

1.2) 是什么

NoSQL(NoSQL = Not Only SQL ),意即“不僅僅是SQL”愉耙,
泛指非關(guān)系型的數(shù)據(jù)庫贮尉。隨著互聯(lián)網(wǎng)web2.0網(wǎng)站的興起,傳統(tǒng)的關(guān)系數(shù)據(jù)庫在應(yīng)付web2.0網(wǎng)站朴沿,特別是超大規(guī)模和高并發(fā)的SNS類型的web2.0純動(dòng)態(tài)網(wǎng)站已經(jīng)顯得力不從心猜谚,暴露了很多難以克服的問題,而非關(guān)系型的數(shù)據(jù)庫則由于其本身的特點(diǎn)得到了非常迅速的發(fā)展赌渣。NoSQL數(shù)據(jù)庫的產(chǎn)生就是為了解決大規(guī)模數(shù)據(jù)集合多重?cái)?shù)據(jù)種類帶來的挑戰(zhàn)魏铅,尤其是大數(shù)據(jù)應(yīng)用難題,包括超大規(guī)模數(shù)據(jù)的存儲(chǔ)坚芜。

1.3) 能干嘛

1.3.1 易擴(kuò)展

NoSQL數(shù)據(jù)庫種類繁多览芳,但是一個(gè)共同的特點(diǎn)都是去掉關(guān)系數(shù)據(jù)庫的關(guān)系型特性。
數(shù)據(jù)之間無關(guān)系鸿竖,這樣就非常容易擴(kuò)展沧竟。也無形之間,在架構(gòu)的層面上帶來了可擴(kuò)展的能力缚忧。

1.3.2 大數(shù)據(jù)量高性能

NoSQL數(shù)據(jù)庫都具有非常高的讀寫性能悟泵,尤其在大數(shù)據(jù)量下,同樣表現(xiàn)優(yōu)秀闪水。
這得益于它的無關(guān)系性糕非,數(shù)據(jù)庫的結(jié)構(gòu)簡(jiǎn)單。
一般MySQL使用Query Cache球榆,每次表的更新Cache就失效朽肥,是一種大粒度的Cache,
在針對(duì)web2.0的交互頻繁的應(yīng)用持钉,Cache性能不高衡招。而NoSQL的Cache是記錄級(jí)的,
是一種細(xì)粒度的Cache右钾,所以NoSQL在這個(gè)層面上來說就要性能高很多了

1.3.3 多樣靈活的數(shù)據(jù)模型

NoSQL無需事先為要存儲(chǔ)的數(shù)據(jù)建立字段蚁吝,隨時(shí)可以存儲(chǔ)自定義的數(shù)據(jù)格式。而在關(guān)系數(shù)據(jù)庫里舀射,
增刪字段是一件非常麻煩的事情窘茁。如果是非常大數(shù)據(jù)量的表,增加字段簡(jiǎn)直就是一個(gè)噩夢(mèng)

1.3.4 傳統(tǒng)RDBMS VS NOSQL

RDBMS vs NoSQL

RDBMS

  • 高度組織化結(jié)構(gòu)化數(shù)據(jù)
  • 結(jié)構(gòu)化查詢語言(SQL)
  • 數(shù)據(jù)和關(guān)系都存儲(chǔ)在單獨(dú)的表中脆烟。
  • 數(shù)據(jù)操縱語言山林,數(shù)據(jù)定義語言
  • 嚴(yán)格的一致性
  • 基礎(chǔ)事務(wù)

NoSQL

  • 代表著不僅僅是SQL
  • 沒有聲明性查詢語言
  • 沒有預(yù)定義的模式
    -鍵 - 值對(duì)存儲(chǔ),列存儲(chǔ),文檔存儲(chǔ)驼抹,圖形數(shù)據(jù)庫
  • 最終一致性桑孩,而非ACID屬性
  • 非結(jié)構(gòu)化和不可預(yù)知的數(shù)據(jù)
  • CAP定理
  • 高性能,高可用性和可伸縮性

1.4) 去哪下

  • Redis
  • Memcache
  • Mongdb

1.5) 怎么玩

  • KV
  • Cache
  • Persistence
    ....
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末框冀,一起剝皮案震驚了整個(gè)濱河市流椒,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌明也,老刑警劉巖宣虾,帶你破解...
    沈念sama閱讀 218,546評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異温数,居然都是意外死亡绣硝,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,224評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門撑刺,熙熙樓的掌柜王于貴愁眉苦臉地迎上來鹉胖,“玉大人,你說我怎么就攤上這事够傍「Σぃ” “怎么了?”我有些...
    開封第一講書人閱讀 164,911評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵王带,是天一觀的道長(zhǎng)淑蔚。 經(jīng)常有香客問我,道長(zhǎng)愕撰,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,737評(píng)論 1 294
  • 正文 為了忘掉前任醋寝,我火速辦了婚禮搞挣,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘音羞。我一直安慰自己囱桨,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,753評(píng)論 6 392
  • 文/花漫 我一把揭開白布嗅绰。 她就那樣靜靜地躺著舍肠,像睡著了一般。 火紅的嫁衣襯著肌膚如雪窘面。 梳的紋絲不亂的頭發(fā)上翠语,一...
    開封第一講書人閱讀 51,598評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音财边,去河邊找鬼肌括。 笑死,一個(gè)胖子當(dāng)著我的面吹牛酣难,可吹牛的內(nèi)容都是我干的谍夭。 我是一名探鬼主播黑滴,決...
    沈念sama閱讀 40,338評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼紧索!你這毒婦竟也來了袁辈?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,249評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤珠漂,失蹤者是張志新(化名)和其女友劉穎吵瞻,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體甘磨,經(jīng)...
    沈念sama閱讀 45,696評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡橡羞,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,888評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了济舆。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片卿泽。...
    茶點(diǎn)故事閱讀 40,013評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖滋觉,靈堂內(nèi)的尸體忽然破棺而出签夭,到底是詐尸還是另有隱情,我是刑警寧澤椎侠,帶...
    沈念sama閱讀 35,731評(píng)論 5 346
  • 正文 年R本政府宣布第租,位于F島的核電站,受9級(jí)特大地震影響我纪,放射性物質(zhì)發(fā)生泄漏慎宾。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,348評(píng)論 3 330
  • 文/蒙蒙 一浅悉、第九天 我趴在偏房一處隱蔽的房頂上張望趟据。 院中可真熱鬧,春花似錦术健、人聲如沸汹碱。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,929評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽咳促。三九已至,卻和暖如春勘伺,著一層夾襖步出監(jiān)牢的瞬間跪腹,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,048評(píng)論 1 270
  • 我被黑心中介騙來泰國(guó)打工娇昙, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留尺迂,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,203評(píng)論 3 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像噪裕,于是被迫代替她去往敵國(guó)和親蹲盘。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,960評(píng)論 2 355

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

  • 關(guān)于Mongodb的全面總結(jié) MongoDB的內(nèi)部構(gòu)造《MongoDB The Definitive Guide》...
    中v中閱讀 31,938評(píng)論 2 89
  • 云計(jì)算背后的秘密:NoSQL誕生的原因和優(yōu)缺點(diǎn) 我本來一直覺得NoSQL其實(shí)很容易理解的膳音,我本身也已經(jīng)對(duì)NoSQL...
    ItStar閱讀 2,272評(píng)論 0 7
  • 本文轉(zhuǎn)自:http://blog.csdn.net/sunxianghuang/article/details/5...
    Andy_0801閱讀 1,351評(píng)論 0 8
  • 1. 入門概述 1.1 互聯(lián)網(wǎng)時(shí)代背景下 大機(jī)遇召衔,為什么用nosql 1單機(jī)MySQL的美好年代 在90年代,一個(gè)...
    Java及SpringBoot閱讀 1,381評(píng)論 0 7
  • 為何要使用NoSQL數(shù)據(jù)庫祭陷? 1.NoSQL具有靈活的數(shù)據(jù)模型苍凛,可以處理非結(jié)構(gòu)化/半結(jié)構(gòu)化的大數(shù)據(jù) 2.NoSQL...
    毛子阿卡西閱讀 535評(píng)論 0 3