快取雪崩問題

2021-10-20 22:43:25 字數 296 閱讀 4085

快取雪崩是指機器宕機或在我們設定快取時採用了相同的過期時間,導致快取在某一時刻同時失效,請求全部**到db,db瞬時壓力過重雪崩。

1:在快取失效後,通過加鎖或者佇列來控制讀資料庫寫快取的執行緒數量。比如對某個key只允許乙個執行緒查詢資料和寫快取,其他執行緒等待。

2:做二級快取,a1為原始快取,a2為拷貝快取,a1失效時,可以訪問a2,a1快取失效時間設定為短期,a2設定為長期

3:不同的key,設定不同的過期時間,讓快取失效的時間點盡量均勻。

4:如果快取資料庫是分布式部署,將熱點資料均勻分布在不同搞得快取資料庫中。

Redis快取雪崩問題

由於快取層承載著大量請求,有效地保護了儲存層,但是如果快取層由於某些原因不能提供服務 大量的快取資料過期 於是所有的請求都會達到儲存層,儲存層的呼叫量會暴增,造成儲存層也會級聯宕機的情況。1 保證快取層服務高可用性。和飛機都有多個引擎一樣,如果快取層設計成高可用的,將熱點資料均勻分布在不同的伺服器中...

快取穿透 快取擊穿 快取雪崩問題

快取穿透 快取穿透,是指查詢乙個資料庫一定不存在的資料正常的使用快取流程大致是,資料查詢先進行快取查詢,如果 key 不存在或者 key 已經過期,再對資料庫進行查詢,並把查詢到的物件,放進快取。如果資料庫查詢物件為空,則不放進快取,就會每次都去查詢資料庫,而每次查詢都是空,每次又都不會進行快取。假...

Redis快取穿透 快取雪崩問題

穿透雪崩主要是因為查詢資料庫造成的,那麼讀寫分離,快取資料查詢失敗不去查資料庫就好了。查的時候有即是有,無即是無,不會再查資料庫,快取的穿透和雪崩問題就不存在了。其次新增資料庫和快取同步功能,保證資料庫和快取資料是一致的即可 需要注意的是這時候資料庫資料是有限和相對穩定的,其實如果是海量資料同時放入...