MySQL與Redis的區別---詳細!


1. MySQL和Redis的數據庫類型

MySQL是關系型數據庫,主要用於存放持久化數據,將數據存儲在硬盤中,讀取速度較慢。

Redis是NOSQL,即非關系型數據庫,也是緩存數據庫,即將數據存儲在緩存中,緩存的讀取速度快,能夠大大的提高運行效率,但是保存時間有限。

2. MySQL的運行機制

MySQL作為持久化存儲的關系型數據庫,相對薄弱的地方在於每次請求訪問數據庫時,都存在着I/O操作,如果反復頻繁的訪問數據庫:
第一:會在反復鏈接數據庫上花費大量時間,從而導致運行效率過慢;
第二:反復的訪問數據庫也會導致數據庫的負載過高,那么此時緩存的概念就衍生了出來。

3. 緩存

緩存就是數據交換的緩沖區(cache)當瀏覽器執行請求時,首先會對在緩存中進行查找,如果存在就獲取;否則就訪問數據庫。

緩存的好處就是讀取速度快。

4.Redis數據庫

Redis數據庫就是一款緩存數據庫,用於存儲使用頻繁的數據,這樣減少訪問數據庫的次數,提高運行效率。

5.Redis和MySQL的區別總結

5.1類型上

從類型上來說,MySQL是關系型數據庫,Redis是緩存數據庫。

5.2作用上

MySQL用於持久化的存儲數據到硬盤,功能強大,但是速度較慢

Redis用於存儲使用較為頻繁的數據到緩存中,讀取速度快

5.3需求上

MySQL和Redis因為需求的不同,一般都是配合使用

5.4場景選型上

Redis和MySQL要根據具體業務場景去選型

5.5存放位置

數據存放位置MySQL:數據放在磁盤

Redis:數據放在內存

5.6適合存放數據類型

Redis適合放一些頻繁使用,比較熱的數據,因為是放在內存中,讀寫速度都非常快,一般會應用在下面一些場景:排行榜、計數器、消息隊列推送、好友關注、粉絲

6. 數據可不可以直接全部用Redis存儲呢?

6.1 首先要知道MySQL存儲在磁盤里,Redis存儲在內存里,Redis既可以用來做持久存儲,也可以做緩存,而目前大多數公司的存儲都是MySQL + Redis,MySQL作為主存儲,Redis作為輔助存儲被用作緩存,加快訪問讀取的速度,提高性能.

6.2 Redis存儲在內存中,如果存儲在內存中,存儲容量肯定要比磁盤少很多,那么要存儲大量數據,只能花更多的錢去購買內存,造成在一些不需要高性能的地方是相對比較浪費的,所以目前基本都是MySQL(主) + Redis(輔),在需要性能的地方使用Redis,在不需要高性能的地方使用MySQL,好鋼用在刀刃上.

6.3 MySQL支持sql查詢,可以實現一些關聯的查詢以及統計.

6.4 Redis對內存要求比較高,在有限的條件下不能把所有數據都放在Redis.

6.5 MySQL偏向於存數據,Redis偏向於快速取數據,但Redis查詢復雜的表關系時不如MySQL,所以可以把熱門的數據放Redis,MySQL存基本數據


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM