redis和mysql要根據具體業務場景去選型
mysql:數據放在磁盤 redis:數據放在內存
redis適合放一些頻繁使用,比較熱的數據,因為是放在內存中,讀寫速度都非常快,一般會應用在下面一些場景
排行榜、計數器、消息隊列推送、好友關注、粉絲
首先要知道mysql存儲在磁盤里,redis存儲在內存里,redis既可以用來做持久存儲,也可以做緩存,而目前大多數公司的存儲都是mysql + redis,mysql作為主存儲,redis作為輔助存儲被用作緩存,加快訪問讀取的速度,提高性能
那么為什么不直接全部用redis存儲呢?
我的看法是:因為redis存儲在內存中,如果存儲在內存中,存儲容量肯定要比磁盤少很多,那么要存儲大量數據,只能花更多的錢去購買內存,造成在一些不需要高性能的地方是相對比較浪費的,所以目前基本都是mysql(主) + redis(輔),在需要性能的地方使用redis,在不需要高性能的地方使用mysql,好鋼用在刀刃上
那么為什么不直接全部用redis存儲呢?
我的看法是:因為redis存儲在內存中,如果存儲在內存中,存儲容量肯定要比磁盤少很多,那么要存儲大量數據,只能花更多的錢去購買內存,造成在一些不需要高性能的地方是相對比較浪費的,所以目前基本都是mysql(主) + redis(輔),在需要性能的地方使用redis,在不需要高性能的地方使用mysql,好鋼用在刀刃上
1、mysql支持sql查詢,可以實現一些關聯的查詢以及統計;
2、redis對內存要求比較高,在有限的條件下不能把所有數據都放在redis;
3、mysql偏向於存數據,redis偏向於快速取數據,但redis查詢復雜的表關系時不如mysql,所以可以把熱門的數據放redis,mysql存基本數據