redis學(xué)習(xí)之NoSQL是什么意思

小編給大家分享一下redis學(xué)習(xí)之NOSQL是什么意思,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!

創(chuàng)新互聯(lián)建站堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:做網(wǎng)站、網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時(shí)代的鄭州網(wǎng)站設(shè)計(jì)、移動(dòng)媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!

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

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

在90年代,一個(gè)網(wǎng)站的訪問(wèn)量一般都不大,用單個(gè)數(shù)據(jù)庫(kù)完全可以輕松應(yīng)付。
在那個(gè)時(shí)候,更多的都是靜態(tài)網(wǎng)頁(yè),動(dòng)態(tài)交互類(lèi)型的網(wǎng)站不多。
redis學(xué)習(xí)之NoSQL是什么意思
DAL dal是數(shù)據(jù)訪問(wèn)層的英文縮寫(xiě),即為數(shù)據(jù)訪問(wèn)層(Data Access Layer)

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

1.2.Memcached(緩存)+MySQL+垂直拆分

后來(lái),隨著訪問(wèn)量的上升,幾乎大部分使用MySQL架構(gòu)的網(wǎng)站在數(shù)據(jù)庫(kù)上都開(kāi)始出現(xiàn)了性能問(wèn)題,web程序不再僅僅專(zhuān)注在功能上,同時(shí)也在追求性能。程序員們開(kāi)始大量的使用緩存技術(shù)來(lái)緩解數(shù)據(jù)庫(kù)的壓力,優(yōu)化數(shù)據(jù)庫(kù)的結(jié)構(gòu)和索引。開(kāi)始比較流行的是通過(guò)文件緩存來(lái)緩解數(shù)據(jù)庫(kù)壓力,但是當(dāng)訪問(wèn)量繼續(xù)增大的時(shí)候,多臺(tái)web機(jī)器通過(guò)文件緩存不能共享,大量的小文件緩存也帶了了比較高的IO壓力。在這個(gè)時(shí)候,Memcached就自然的成為一個(gè)非常時(shí)尚的技術(shù)產(chǎn)品。
redis學(xué)習(xí)之NoSQL是什么意思
相當(dāng)于之前dao層直接訪問(wèn)數(shù)據(jù)庫(kù),現(xiàn)在中間插入了一個(gè)cache層。頻繁的數(shù)據(jù)庫(kù)訪問(wèn)造成了性能的降低,我們把其中的一些內(nèi)容放入緩存中,減輕壓力。

1.3.Mysql主從讀寫(xiě)分離

由于數(shù)據(jù)庫(kù)的寫(xiě)入壓力增加,Memcached 只能緩解數(shù)據(jù)庫(kù)的讀取壓力。讀寫(xiě)集中在一個(gè)數(shù)據(jù)庫(kù)上讓數(shù)據(jù)庫(kù)不堪重負(fù),大部分網(wǎng)站開(kāi)始使用主從復(fù)制技術(shù)來(lái)達(dá)到讀寫(xiě)分離,以提高讀寫(xiě)性能和讀庫(kù)的可擴(kuò)展性Mysql的master-slave模 式成為這個(gè)時(shí)候的網(wǎng)站標(biāo)配了。
redis學(xué)習(xí)之NoSQL是什么意思
解釋?zhuān)褐鲙?kù)有一條記錄更新,為了保證數(shù)據(jù)的完整性,需要復(fù)制到從庫(kù)中。讀寫(xiě)分離:Master/slaver。我們可以將寫(xiě)的操作放在主庫(kù)中,讀的操作放在從庫(kù)中。

1.4.分表分庫(kù)+水平拆分+mysql集群

在Memcached的高速緩存,MySQL的主從復(fù)制, 讀寫(xiě)分離的基礎(chǔ)之上,這時(shí)MySQL主庫(kù)的寫(xiě)壓力開(kāi)始出現(xiàn)瓶頸,而數(shù)據(jù)量的持續(xù)猛增,由于MyISAM使用表鎖,在高并發(fā)下會(huì)出現(xiàn)嚴(yán)重的鎖問(wèn)題,大量的高并發(fā)MySQL應(yīng)用開(kāi)始使用InnoDB引擎代替MyISAM。
同時(shí),開(kāi)始流行使用分表分庫(kù)來(lái)緩解寫(xiě)壓力和數(shù)據(jù)增長(zhǎng)的擴(kuò)展問(wèn)題。這個(gè)時(shí)候,分表分庫(kù)成了一個(gè)熱門(mén)技術(shù),是面試的熱門(mén)問(wèn)題也是業(yè)界討論的熱門(mén)技術(shù)問(wèn)題。也就在這個(gè)時(shí)候,MySQL推出了還不太穩(wěn)定的表分區(qū),這也給技術(shù)實(shí)力一般的公司帶來(lái)了希望。雖然MySQL推出了MySQL Cluster集群,但性能也不能很好滿足互聯(lián)網(wǎng)的要求,只是在高可靠性上提供了非常大的保證。
redis學(xué)習(xí)之NoSQL是什么意思
表鎖和行鎖?
分庫(kù)分表 1-3000進(jìn)1號(hào)庫(kù)。3001-6000進(jìn)2號(hào)庫(kù)。等等

1.5.MySQL的擴(kuò)展性瓶頸

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

1.6.今天是什么樣子? ?

redis學(xué)習(xí)之NoSQL是什么意思
防火墻-nginx-Tomcat集群

1.7.為什么用NoSQL

今天我們可以通過(guò)第三方平臺(tái)( 如: Google,F(xiàn)acebook等) 可以很容易的訪問(wèn)和抓取數(shù)據(jù)。用戶的個(gè)人信息,社交網(wǎng)絡(luò),地理位置,用戶生成的數(shù)據(jù)和用戶操作日志已經(jīng)成倍的增加。我們?nèi)绻獙?duì)這些用戶數(shù)據(jù)進(jìn)行挖掘,那SQL數(shù)據(jù)庫(kù)已經(jīng)不適合這些應(yīng)用了,NoSql數(shù)據(jù)庫(kù)的發(fā)展也卻能很好的處理這些大的數(shù)據(jù)。
redis學(xué)習(xí)之NoSQL是什么意思

2.是什么

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

(例如谷歌或Facebook每天為他們的用戶收集萬(wàn)億比特的數(shù)據(jù))。這些類(lèi)型的數(shù)據(jù)存儲(chǔ)不需要固定的模式,無(wú)需多余操作就可以橫向擴(kuò)展

3.能干嘛

易擴(kuò)展

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

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

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

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

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

傳統(tǒng)RDBMS VS NOSQL

RDBMS
高度組織化結(jié)構(gòu)化數(shù)據(jù)
結(jié)構(gòu)化查詢語(yǔ)言(SQL)
數(shù)據(jù)和關(guān)系都存儲(chǔ)在單獨(dú)的表中
數(shù)據(jù)操縱語(yǔ)言,數(shù)據(jù)定義語(yǔ)言
嚴(yán)格的一致性
基礎(chǔ)事務(wù)
NoSQL
代表著不僅僅是SQL
沒(méi)有聲明性查詢語(yǔ)言
沒(méi)有預(yù)定義的模式
鍵-值對(duì)存儲(chǔ),列存儲(chǔ),文檔存儲(chǔ),圖形數(shù)據(jù)庫(kù)
最終一致性,而非ACID屬性
非結(jié)構(gòu)化和不可預(yù)知的數(shù)據(jù):
CAP定理
高性能,高可用性和可伸縮性

4.有哪些NoSQL

Redis(數(shù)據(jù)類(lèi)型和高速緩存,各方面都比較優(yōu)秀)
Memcached(高速緩存)
MongDB(最類(lèi)似關(guān)系型數(shù)據(jù)庫(kù))

5.怎么玩

KV
Cache
Persistence

談?wù)勀銓?duì)Redis的理解,就說(shuō)KV-CACHE-PERSISITENCE

3V + 3高

大數(shù)據(jù)時(shí)代的3V:
海量Volume
多樣Variety
實(shí)時(shí)Velocity
系統(tǒng)上出現(xiàn)一些問(wèn)題的描述,淘寶雙十一海量的數(shù)據(jù)。一條微博,文字域,視頻域和背景域等等。多樣化。12306實(shí)時(shí)性要求高。做不到絕對(duì)的實(shí)時(shí)

互聯(lián)網(wǎng)需求的3高:
高并發(fā)
高可括
高性能
系統(tǒng)要支持高并發(fā),如12306.四種方式獲得線程。
可擴(kuò)展性,橫向和縱向。橫向,一臺(tái)機(jī)器不夠,再加機(jī)器。
性能要求高

看完了這篇文章,相信你對(duì)“redis學(xué)習(xí)之NoSQL是什么意思”有了一定的了解,如果想了解更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!

分享文章:redis學(xué)習(xí)之NoSQL是什么意思
分享路徑:http://muchs.cn/article10/jejjdo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供全網(wǎng)營(yíng)銷(xiāo)推廣、營(yíng)銷(xiāo)型網(wǎng)站建設(shè)ChatGPT、網(wǎng)站建設(shè)、品牌網(wǎng)站設(shè)計(jì)、面包屑導(dǎo)航

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

手機(jī)網(wǎng)站建設(shè)