快取雪崩和快取穿透問題解決方案

2021-09-19 17:09:09 字數 482 閱讀 5045

快取雪崩

簡介:快取同一時間大面積的失效,所以,後面的請求都會落到資料庫上,造成資料庫短時間內承受大量請求而崩掉。

快取穿透

簡介:一般是黑客故意去請求快取中不存在的資料,導致所有的請求都落到資料庫上,造成資料庫短時間內承受大量請求而崩掉。

解決辦法: 有很多種方法可以有效地解決快取穿透問題,最常見的則是採用布隆過濾器,將所有可能存在的資料雜湊到乙個足夠大的bitmap中,乙個一定不存在的資料會被 這個bitmap攔截掉,從而避免了對底層儲存系統的查詢壓力。另外也有乙個更為簡單粗暴的方法(我們採用的就是這種),如果乙個查詢返回的資料為空(不管是數 據不存在,還是系統故障),我們仍然把這個空結果進行快取,但它的過期時間會很短,最長不超過五分鐘。

更加詳細的版本:

redis快取雪崩和快取穿透問題解決方案

快取雪崩 簡介 快取同一時間大面積的失效,所以,後面的請求都會落到資料庫上,造成資料庫短時間內承受大量請求而崩掉。事前 盡量保證整個 redis 集群的高可用性,發現機器宕機盡快補上。選擇合適的記憶體淘汰策略。事中 本地ehcache快取 hystrix限流 降級,避免mysql崩掉 事後 利用 r...

快取雪崩和快取穿透解決方案

快取雪崩和快取穿透 快取雪崩 簡單的說就是快取失效,原本該訪問快取的資料直接訪問資料庫,從而造成資料庫和記憶體壓力大,嚴重的可能導致資料庫宕機 伺服器崩潰。解決方案 1.使用分布式鎖或者對列控制讀資料庫寫快取的執行緒數,保證這有乙個個執行緒進行操作。缺 點降低了系統的吞吐量 2.redis中的key...

Redis 快取雪崩和快取穿透 解決方案

造成的原因 1.業務自身 或資料出現問題 2.一些惡意攻擊 爬蟲造成大量空的命中,此時會對資料庫造成很大壓力。解決方法 1.設定布隆過濾器,將所有可能存在的資料雜湊到乙個足夠大的bitmap中,乙個一定不存在的資料會被這個bitmap攔截掉,從避免了對底層儲存系統的查詢壓力。2.如果乙個查詢返回的資...