Redis 缓存常见问题 :缓存雪崩,缓存击穿,缓存穿透,缓存预热
文章目錄
- 緩存雪崩
- 緩存擊穿
- 緩存穿透
- 緩存預(yù)熱
緩存雪崩
緩存雪崩指的是在短時間內(nèi),有大量緩存的鍵同時過期,由于緩存過期,導(dǎo)致此時所有的請求就直接查詢數(shù)據(jù)庫,而數(shù)據(jù)庫很難抵擋這樣巨大的壓力,嚴(yán)重情況下就會導(dǎo)致數(shù)據(jù)庫被大流量打死,直接宕機(jī)。
下面是正常的查詢流程以及緩存雪崩后的查詢流程
緩存雪崩的解決方法有以下幾種
緩存擊穿
緩存擊穿與緩存雪崩很像,不過一個是針對大量緩存一個是針對熱點緩存。
緩存擊穿即當(dāng)某個熱點緩存突然失效,而正好對其有著大量的請求,此時這些請求就會直接向數(shù)據(jù)庫進(jìn)行查詢,導(dǎo)致數(shù)據(jù)庫面臨巨大的壓力
緩存擊穿的解決方法有以下幾種
緩存穿透
緩存穿透是指查詢的數(shù)據(jù)在緩存中和數(shù)據(jù)庫中都不存在,(由于主鍵通常都是從1開始自增,此時大量查詢負(fù)數(shù)或者特別大的數(shù)據(jù)就會導(dǎo)致緩存穿透)。
處于容錯考慮,由于這些數(shù)據(jù)在數(shù)據(jù)庫中不存在,所以不會將結(jié)果保存到緩存中。而又因為緩存中沒有這些數(shù)據(jù),所以每次請求都會繞過緩存,直接向數(shù)據(jù)庫查詢,這就是緩存穿透
緩存穿透的解決方法有以下幾種
緩存預(yù)熱
與上面三種不同,緩存預(yù)熱并不是一個需要解決的問題,而是一種優(yōu)化的策略,通過這種策略能夠更快的響應(yīng)用戶的查詢。
緩存預(yù)熱指的是在啟動系統(tǒng)的時候,提前將查詢的結(jié)果預(yù)存到緩存中,這樣用戶查詢時就可以直接從緩存中讀取,減少了用戶的等待時間
緩存預(yù)熱的實現(xiàn)方法有以下三種
總結(jié)
以上是生活随笔為你收集整理的Redis 缓存常见问题 :缓存雪崩,缓存击穿,缓存穿透,缓存预热的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Redis 持久化策略 : RDB持久化
- 下一篇: Redis 多机服务 : 主从同步、哨兵