簡單,來說使用緩存主要是為了提升用戶體驗以及應對更多的用戶。
下面我們主要從“高性能”和“高並發”這兩點來看待這個問題。
高性能 : 對照上面 👆 我畫的圖。我們設想這樣的場景: 假如用戶第一次訪問數據庫中的某些數據的話,這個過程是比較慢,畢竟是從硬盤中讀取的。但是,如果說,用戶訪問的數據屬於高頻數據並且不會經常改變的話,那么我們就可以很放心地將該用戶訪問的數據存在緩存中。
這樣有什么好處呢? 那就是保證用戶下一次再訪問這些數據的時候就可以直接從緩存中獲取了。操作緩存就是直接操作內存,所以速度相當快。
不過,要保持數據庫和緩存中的數據的一致性。 如果數據庫中的對應數據改變的之后,同步改變緩存中相應的數據即可!
高並發: 一般像 MySQL 這類的數據庫的 QPS 大概都在 1w 左右(4 核 8g) ,但是使用 Redis 緩存之后很容易達到 10w+,甚至最高能達到 30w+(就單機 redis 的情況,redis 集群的話會更高)。
QPS(Query Per Second):服務器每秒可以執行的查詢次數;
由此可見,直接操作緩存能夠承受的數據庫請求數量是遠遠大於直接訪問數據庫的,所以我們可以考慮把數據庫中的部分數據轉移到緩存中去,這樣用戶的一部分請求會直接到緩存這里而不用經過數據庫。進而,我們也就提高了系統整體的並發。