日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

常哥带你认识NoSQL和Redis的强大

發布時間:2023/12/4 数据库 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 常哥带你认识NoSQL和Redis的强大 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

各位朋友,這篇文章是針對Redis快速了解的內容,為了學好Redis在這里首先跟大家聊聊NoSQL相關內容,有了概念和方向后,我們再學習Redis大家會感覺得心應手。

NoSQL你必知的那些事兒

1

什么是NoSQL?

NoSQL是Not Only SQL的縮寫,意思是“不僅僅是SQL”。也是大家通常所說的非關系型數據庫的統稱。NoSQL和我們熟悉的關系型數據庫的作用一樣,都是用來存儲數據的倉庫。但是在使用方法、存儲特點和性能上卻大相徑庭。

2

為什么要使用NoSQL?

在互聯網高速發展的今天,人們對網絡需求日益多樣化。比如我們使用的QQ、微信、抖音、快手、微博等在線互動、朋友圈、點贊、評論等。不管是在數據訪問量和并發量上都是巨大的,這對服務器的數據存儲和實時響應提出了更多的挑戰。比如以前我們非常熟悉的12306購票網站出來的時候,為什么網站一度癱瘓呢?這個與并發的處理速度是有很大關系的。然而傳統的關系型數據庫在面對這些海量的數據存儲,以及高訪問量和高并發讀寫上面明顯不能滿足互聯網的需求了。按照傳統的集群部署增加服務器也難以應對超大規模、高并發、高吞吐量的需求,很多問題已經克服不了了。這時候NoSQL應運而生,從而解決了傳統關系型數據庫所不能解決的問題。

3

NoSQL解決的問題和特點

【1】擴展方便、數據之間沒有直接的關系。

【2】數據模型非常靈活,不用像關系型數據庫那樣提前需要建立字段類型,隨時自定義格式即可存儲。

【3】適合大數據量,高性能的存取。

【4】實現了高并發讀/寫、高可用性。

4

大數據(big data)的定義

我們經常聽說大數據,那么如何理解大數據呢?研究機構Gartner公司把大數據定義為高速、巨量且多變的數據。高速是指數據的生成或者變化速度非???#xff1b;所謂巨量是指數據的規模很大;多變是指數據類型的范圍或數據中所包含的信息范圍非常廣泛。而NoSQL就是適應大數據時代而產生的。

?

NoSQL與傳統關系型數據庫對比

我們常見的傳統關系型數據庫(Traditional Relational DataBase,簡稱TRDB)有MySQL、Oracle、SQLServer、SQLite、DB2、Access等。我們將從不同方面做對比,讓大家更多的了解NoSQL的特點。

1

存儲形式:

【1】NoSQL的存儲形式非常多樣化,如鍵-值對、圖形結構、文檔形式、列族形式等。

【2】TRDB的存儲都是用關系型數據模型存儲,典型的就是列表結構,數據之間有強的依賴關系,用二維表的結構完成數據持久化。

2

查詢速度

【1】NoSQL的數據都是在系統的緩存中,不需要專門的SQL層解析,所以查詢效率非常高。

【2】TRDB的數據直接存儲在硬盤中,查詢的時候需要SQL專門的解析,然后進入內存實現查詢,效率低。

3

擴展性

【1】NoSQL沒有表間關系,可以輕松擴展,采用鍵-值對存儲,數據之間沒有耦合性。

【2】TRDB采用關系表存儲,而且表間高耦合,想擴展一個表非常難,而且對其他查詢影響較大。

4

ACID特性支持

【1】NoSQL一般不支持ACID特性(原子性、一致性、隔離性、持久性)它實現最終一致性。

【2】TRDB支持ACID特性,并且具有嚴格的數據一致性。

5

SQL語句支持

【1】NoSQL不支持SQL語句,因為沒有結構性查詢語言。

【2】TRDB支持SQL語句,而且可以支持很復雜的實現。

NoSQL數據庫的分布式管理機制

為了實現高可用和高擴展、負載均衡等,NoSQL數據庫在分布式處理環境下,需要對所有服務器上的數據進行處理。常見的部署方式就是通過主(Master)-從(Salve)模式的分布式方案,這類數據庫軟件常見的有MongoDB、Redis等。典型的架構如下:

?

?

這里的Master或一個Slave都是獨立的服務器,我們稱為節點(Node)。Master主要承擔客戶請求處理、給不同的Slave分配數據處理任務,并負責所有Slave的協調一致性等任務。Slave主要負責接收傳送到本地的數據、存儲和計算過程,并把結果返回給調用者。這點,大家可以先簡單了解,后面我們講解集群的時候,這些還會詳細介紹。

快速認識Redis的強大

1

Redis的由來

Redis是由意大利Meriza公司的創始人在2009年開發成功的產品,當時是為了解決公司內部的一個實時統計系統的性能,后來經過不斷完善,到現在Redis已經非常普及的被使用。

Redis本身是用C語言開發的一款開源的、高性能的鍵值對存儲數據庫,才用BSD協議,并且支持多種數據類型:字符串、列表、哈希、有序集合、無序集合等。內置復制、Lua腳本、LRU回收、事務等,以及高性能的持久化功能。

?

2

Redis的特性

【1】支持多種計算機編程語言。如C#、Java、C、C++、Python、PHP、Lua、Ruby等。

【2】支持多種數據類型。如String、Hash、List、Set、SortedSet等。

【3】讀/寫速度快、高性能。官方給的數據是11萬次/秒讀取,8.1萬次/秒寫入。因為Redis的操作是在內存中進行的,所以速度的驚人的。實際測試也是這個速度。

【4】支持持久化。Redis每隔一段時間可以自動實現備份,在重啟的時候會自動加載到內存中。主要有AOF和RDB方式,這個后面我們會詳細講到。

【5】高可用主從復制、分布式集群與負載均衡。Redis的Cluster支持分布式,可以輕松實現分布式集群,Redis Sentinel支持高可用。這個我們都在后面的課程中詳細講解。

?

3

Redis的使用場景

【1】做緩存。這個是使用最多的場景。Redis的緩存速度和查詢速度非???#xff0c;使用方便。比如緩存商品信息、購物車等數據。

【2】實現消息隊列系統。Redis運行穩定、速度快,可以實現消息訂閱發布。Redis還有阻塞隊列的命令,使得輕松完成隊列,比如秒殺、搶購等。

【3】做實時系統、消息系統。比如實現在線聊天系統。

【4】實現排行榜應用。Redis實現了有序集合??梢暂p松對百萬級的用戶實現排名。

【5】數據過期處理。我們可以設置數據的過期時間,從而實現過期數據的查找和刪除等。

【6】做大型社交平臺。各種社交APP都可以用Redis做緩存和實時數據處理。

【7】分布式集群架構中的Session分離。采用分布式集群部署,可以滿足web應用系統大規模訪問量的需求。而實現分布式集群部署,就要解決Session的統一問題。而Redis可以實現Session共享機制。

輸入優惠口令「redisgogo」,立省 ¥40 入手

總結

以上是生活随笔為你收集整理的常哥带你认识NoSQL和Redis的强大的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。