mysql有幾種用法?
首先要知道mysql存儲在磁盤里,redis存儲在內存里,redis既可以用來做持久存儲,也可以做緩存,而目前大多數公司的存儲都是mysql + redis,mysql作為主存儲,redis作為輔助存儲被用作緩存,加快訪問讀取的速度,提高性能
那么為什么不直接全部用redis存儲呢?
我的看法是:因為redis存儲在內存中,如果存儲在內存中,存儲容量肯定要比磁盤少很多,那么要存儲大量數據,只能花更多的錢去購買內存,造成在一些不需要高性能的地方是相對比較浪費的,所以目前基本都是mysql(主) + redis(輔),在需要性能的地方使用redis,在不需要高性能的地方使用mysql,好鋼用在刀刃上
貌似其他回答都沒有說到這一點:redis的持久化功能,還可以防緩存雪崩。應該說這才是redis支持持久化的必要性所在。
例如假設后臺架構是redis+mysql,且redis關閉了持久化,redis服務器某天突然宕機,丟失了內存所有緩存,當redis服務器恢復后,必然要重新從mysql拿數據做緩存,如果讀數據請求非常集中,mysql可能就癱瘓了,此即為緩存雪崩。
如果遇到土豪公司只用redis數據庫而不用mysql,就沒有什么緩存雪崩問題,因為此時redis根本就不是緩存功能而是存儲功能了。