久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

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

共計(jì) 2864 個(gè)字符,預(yù)計(jì)需要花費(fèi) 8 分鐘才能閱讀完成。

自動(dòng)寫代碼機(jī)器人,免費(fèi)開通

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

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

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

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

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

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

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

1.3.Mysql 主從讀寫分離

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

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

在 Memcached 的高速緩存,MySQL 的主從復(fù)制,讀寫分離的基礎(chǔ)之上,這時(shí) MySQL 主庫(kù)的寫壓力開始出現(xiàn)瓶頸,而數(shù)據(jù)量的持續(xù)猛增,由于 MyISAM 使用表鎖,在高并發(fā)下會(huì)出現(xiàn)嚴(yán)重的鎖問題,大量的高并發(fā) MySQL 應(yīng)用開始使用 InnoDB 引擎代替 MyISAM。
同時(shí),開始流行使用分表分庫(kù)來緩解寫壓力和數(shù)據(jù)增長(zhǎng)的擴(kuò)展問題。這個(gè)時(shí)候,分表分庫(kù)成了一個(gè)熱門技術(shù),是面試的熱門問題也是業(yè)界討論的熱門技術(shù)問題。也就在這個(gè)時(shí)候,MySQL 推出了還不太穩(wěn)定的表分區(qū),這也給技術(shù)實(shí)力一般的公司帶來了希望。雖然 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ù)來實(shí)現(xiàn)),大數(shù)據(jù)下 IO 壓力大,表結(jié)構(gòu)更改困難,正是當(dāng)前使用 MySOL 的開發(fā)人員面臨的問題。

1.6. 今天是什么樣子? ?

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

1.7. 為什么用 NoSQL

今天我們可以通過第三方平臺(tái)(如: Google,F(xiàn)acebook 等) 可以很容易的訪問和抓取數(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 類型的 web2.0 純動(dòng)態(tài)網(wǎng)站已經(jīng)顯得力不從心,暴露了很多難以克服的問題,而非關(guān)系型的數(shù)據(jù)庫(kù)則由于其本身的特點(diǎn)得到了非常迅速的發(fā)展。NoSQL 數(shù)據(jù)庫(kù)的產(chǎn)生就是為了解決大規(guī)模數(shù)據(jù)集合多重?cái)?shù)據(jù)種類帶來的挑戰(zhàn),尤其是大數(shù)據(jù)應(yīng)用難題,包括超大規(guī)模數(shù)據(jù)的存儲(chǔ)。

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

3. 能干嘛

易擴(kuò)展

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

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

NoSQL 數(shù)據(jù)庫(kù)都具有非常高的讀寫性能,尤其在大數(shù)據(jù)量下,同樣表現(xiàn)優(yōu)秀。
這得益于它的無關(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è)層面上來說就要性能高很多了。

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

NoSQL 無需事先為要存儲(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
沒有聲明性查詢語(yǔ)言
沒有預(yù)定義的模式
鍵 - 值對(duì)存儲(chǔ),列存儲(chǔ),文檔存儲(chǔ),圖形數(shù)據(jù)庫(kù)
最終一致性,而非 ACID 屬性
非結(jié)構(gòu)化和不可預(yù)知的數(shù)據(jù):
CAP 定理
高性能,高可用性和可伸縮性

4. 有哪些 NoSQL

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

5. 怎么玩

KV
Cache
Persistence

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

3V + 3 高

大數(shù)據(jù)時(shí)代的 3V:
海量 Volume
多樣 Variety
實(shí)時(shí) Velocity
系統(tǒng)上出現(xià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)注丸趣 TV 行業(yè)資訊頻道,感謝各位的閱讀!

向 AI 問一下細(xì)節(jié)

正文完
 
丸趣
版權(quán)聲明:本站原創(chuàng)文章,由 丸趣 2023-12-04發(fā)表,共計(jì)2864字。
轉(zhuǎn)載說明:除特殊說明外本站除技術(shù)相關(guān)以外文章皆由網(wǎng)絡(luò)搜集發(fā)布,轉(zhuǎn)載請(qǐng)注明出處。
評(píng)論(沒有評(píng)論)
主站蜘蛛池模板: 承德县| 仁化县| 安丘市| 津市市| 惠州市| 潞西市| 秦安县| 积石山| 常熟市| 当雄县| 丹棱县| 密山市| 囊谦县| 延吉市| 贡觉县| 平乡县| 长治市| 紫金县| 马鞍山市| 普洱| 博客| 灵石县| 工布江达县| 谢通门县| 南汇区| 清水河县| 兴义市| 从江县| 玛沁县| 舟曲县| 滦平县| 和顺县| 景泰县| 山阳县| 广州市| 潼南县| 公安县| 清水河县| 德江县| 大荔县| 石台县|