Mysql和Redis的區別和聯繫

1.mysql和redis的數據庫類型

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

redis是一個key-value存儲系統,是nosql,即非關係型數據庫,也是緩存數據庫,即將數據存儲在緩存中,緩存的讀取速度快,能夠大大的提高運行效率,但是保存時間有限

2.mysql的運行機制

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

3.緩存

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

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

4.redis數據庫

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

5.redis和mysql的區別總結

(1)類型上

從類型上來說,mysql是關係型數據庫,redis是緩存數據庫

(2)作用上

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

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

(3)需求上

mysql和redis因爲需求的不同,一般都是配合使用。

6.數據類型

redis數據類型:字符串類型(string),散列類型(hash),列表類型(list),集合類型(set),有序集合類型(zset)
mysql數據類型,大致三類:數值,日期,字符

補充:
redis和mysql要根據具體業務場景去選型

mysql:數據放在磁盤 redis:數據放在內存

redis適合放一些頻繁使用,比較熱的數據,因爲是放在內存中,讀寫速度都非常快,一般會應用在下面一些場景

排行榜、計數器、消息隊列推送、好友關注、粉絲

首先要知道mysql存儲在磁盤裏,redis存儲在內存裏,redis既可以用來做持久存儲,也可以做緩存,而目前大多數公司的存儲都是mysql + redis,mysql作爲主存儲,redis作爲輔助存儲被用作緩存,加快訪問讀取的速度,提高性能
那麼爲什麼不直接全部用redis存儲呢?
我的看法是:因爲redis存儲在內存中,如果存儲在內存中,存儲容量肯定要比磁盤少很多,那麼要存儲大量數據,只能花更多的錢去購買內存,造成在一些不需要高性能的地方是相對比較浪費的,所以目前基本都是mysql(主) + redis(輔),在需要性能的地方使用redis,在不需要高性能的地方使用mysql,好鋼用在刀刃上
1、mysql支持sql查詢,可以實現一些關聯的查詢以及統計;

2、redis對內存要求比較高,在有限的條件下不能把所有數據都放在redis;

3、mysql偏向於存數據,redis偏向於快速取數據,但redis查詢複雜的表關係時不如mysql,所以可以把熱門的數據放redis,mysql存基本數據

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章