mysql查詢緩存清除,什么時間redis?
●不需要實時更新但是又極其消耗數據庫的數據。比如網站上商品銷售排行榜,這種數據一天統計一次就可以了,用戶不會關注其是否是實時的。
● 需要實時更新,但是更新頻率不高的數據。比如一個用戶的訂單列表,他肯定希望能夠實時看到自己下的訂單,但是大部分用戶不會頻繁下單。
● 在某個時刻訪問量極大而且更新也很頻繁的數據。這種數據有一個很典型的例子就是秒殺,在秒殺那一刻,可能有N倍于平時的流量進來,系統壓力會很大。但是這種數據使用的緩存不能和普通緩存一樣,這種緩存必須保證不丟失,否則會有大問題。
一般地,redis可以用來作為MySQL的緩存層。為什么MySQL最好有緩存層呢?想象一下這樣的場景:在一個多人在線的游戲里,排行榜、好友關系、隊列等直接關系數據的情景下,如果直接和MySQL正面交手,大量的數據請求可能會讓MySQL疲憊不堪,甚至過量的請求將會擊穿數據庫,導致整個數據服務中斷,數據庫性能的瓶頸將掣肘業務的開發;那么如果通過Redis來做數據緩存,將大大減小查詢數據的壓力。在這種架子里,當我們在業務層有數據查詢需求時,先到Redis緩存中查詢,如果查不到,再到MySQL數據庫中查詢,同時將查到的數據更新到Redis里;當我們在業務層有修改插入數據需求時,直接向MySQL發起請求,同時更新Redis緩存。