使用redis作為緩存,數據還需要存入數據庫中嗎? ? ?(推薦學習:Redis視頻教程)
我的答案是:
redis只是緩存,不是數據庫如mysql,所以redis中有的數據庫,mysql中一定有。
用戶請求先去請求redis,如果沒有,再去數據庫中去讀取。
redis中緩存一些請求量比較大的數據(這些緩存數據,mysql中一定也是有的),沒必要所有數據都緩存到redis中。
之所以從緩存中拿數據會快,是因為緩存的數據存在于內存中,不像mysql的數據是存在磁盤上的,即不用經過從磁盤加載到內存這個過程(這個過程是非常耗時和低效的),直接從內存獲取數據。
當redis緩存崩潰的時候,那么不是海量的請求都去訪問數據庫了?數據庫能抗住嗎?
收下要分析,當成千億個請求同時訪問過來,數據庫為什么會扛不住?
①超大量的并發,數據庫扛不住。
舉個例子就明白了。
10000萬個plsql客戶端,同時訪問Oracle進行數據庫查詢、寫入等操作,數據庫肯定吃不消。
從這個角度來說,redis并不能幫什么忙。
②數據庫存在低速設備上,每次訪問數據庫,都要經過io,即從磁盤調入內存的過程。這個才是使用redis等緩存機制的原因。
更多Redis相關技術文章,請訪問Redis視頻教程欄目進行學習!
? 版權聲明
文章版權歸作者所有,未經允許請勿轉載。
THE END