html5深圳網(wǎng)站開發(fā)廣州seo快速排名
看到一篇不錯的關于“Mysql與Redis的區(qū)別”的文章,轉過來記錄下~
文章目錄
- 一、數(shù)據(jù)庫類型
- 二、運行機制
- 三、什么是緩存數(shù)據(jù)庫呢?
- 四、優(yōu)缺點比較
- 五、區(qū)別總結
- 六、數(shù)據(jù)可以全部直接用Redis儲存嗎?
- 參考資料
一、數(shù)據(jù)庫類型
-
Redis:NOSQL,非關系型數(shù)據(jù)庫,也叫緩存數(shù)據(jù)庫。將數(shù)據(jù)存儲在緩存中,這雖然提高了運行效率,但是保存時間卻很短。
-
MySQL:關系型數(shù)據(jù)庫,主要是用于存放持久化數(shù)據(jù),將數(shù)據(jù)存儲在硬盤中,但這樣會造成讀取速度慢。
二、運行機制
-
Redis:基于單線程,效率比較高,因為它是基于內存操作,所以CPU不是性能瓶頸,機器內存及寬帶才是Redis的瓶頸。
-
MySQL:作為儲存的的關系型數(shù)據(jù)庫,弱點就是在每次請求訪問數(shù)據(jù)庫時,都存著I/O操作,如果頻繁訪問數(shù)據(jù)庫會產(chǎn)生如下一些問題:
– a.會在反復鏈接數(shù)據(jù)庫上花費大量時間,從而導致運行效率過慢
– b.反復的訪問數(shù)據(jù)庫也會導致數(shù)據(jù)庫的負載過高,此時就引出緩存的概念
三、什么是緩存數(shù)據(jù)庫呢?
緩存就是數(shù)據(jù)交換的的緩沖區(qū),當瀏覽器執(zhí)行請求時,首先會對緩存中進行查找,如果存在就獲取;否則就會訪問數(shù)據(jù)庫。
緩存的好處:最最最直觀好處就是讀取速度快。
Redis的數(shù)據(jù)庫就是一款緩存數(shù)據(jù)庫,用于存儲使用頻繁的數(shù)據(jù),這樣減少訪問數(shù)據(jù)庫的次數(shù),提高運行效率。
四、優(yōu)缺點比較
五、區(qū)別總結
1. 數(shù)據(jù)庫類型的區(qū)別
- MySQL是關系型數(shù)據(jù)庫
- Redis是非關系型數(shù)據(jù)庫,緩存數(shù)據(jù)庫。
2. 作用上的區(qū)別
- MySQL用于持久化存儲數(shù)據(jù)到硬盤,功能強大,但是速度緩慢。
- Redis用于存儲使用較為頻繁的數(shù)據(jù)到緩存中,讀取速度快。
3.數(shù)據(jù)存儲的位置區(qū)別
- Mysql:數(shù)據(jù)存放在磁盤中,
- Redis:數(shù)據(jù)存放在內存中。
4.存放的數(shù)據(jù)類型區(qū)別
- Mysql:數(shù)值、日期、具體時間、字符串
- Redis:String、Hash、List、Set、Zset
5.需求上的區(qū)別
mysql和redis因為需求的不同,一般都是配合使用。
- 需要高性能的地方使用Redis
- 不需要高性能的地方使用MySQL
存儲數(shù)據(jù)在MySQL和Redis之間做同步。
六、數(shù)據(jù)可以全部直接用Redis儲存嗎?
我們將逐個分析:
1.MySQL存儲在磁盤里,Redis存儲在內存里。
Redis既可以用來做持久存儲,也可以做緩存,而目前大多數(shù)公司的存儲都是MySQL + Redis,MySQL作為主存儲,Redis作為輔助存儲被用作緩存,加快訪問讀取的速度,提高性能。
2.Redis存儲在內存中,如果存儲在內存中,存儲容量肯定要比磁盤少很多,那么要存儲大量數(shù)據(jù),只能花更多的錢去購買內存,造成在一些不需要高性能的地方是相對比較浪費的,所以目前基本都是MySQL(主) + Redis(輔),在需要性能的地方使用Redis,在不需要高性能的地方使用MySQL。
3.MySQL支持sql查詢,可以實現(xiàn)一些關聯(lián)的查詢以及統(tǒng)計。
4.Redis對內存要求比較高,在有限的條件下不能把所有數(shù)據(jù)都放在Redis。
5.MySQL偏向于存數(shù)據(jù),Redis偏向于快速取數(shù)據(jù)。
但是Redis查詢復雜的表關系時,不如MySQL,所以可以把熱門的數(shù)據(jù)放Redis,MySQL存基本數(shù)據(jù)。
參考資料
- Mysql與Redis的區(qū)別