緩衝雪崩
在高併發場景下,大量的快取key在同一時刻出現大面積的快取過期,導致大量的請求在快取中獲取不到資料,而直接訪問資料庫,對資料庫cpu和記憶體造成巨大壓力,嚴重的會造成資料庫宕機。從而形成一系列連鎖反應,造成整個系統崩潰。。
解決方案:
快取穿透
指使用者查詢資料,在資料庫沒有,自然在快取中也不會有。這樣就導致使用者查詢的時候,在快取中找不到,每次都要去資料庫再查詢一遍,然後返回空(相當於進行了兩次無用的查詢)。這樣請求就繞過快取直接查資料庫,這也是經常提的快取命中率問題。
解決方案:
快取擊穿
在高併發情況下,對乙個特定的值進行查詢,但是這個時候快取正好過期了,快取沒有命中,而導致大量請求直接訪問資料庫,如活動系統裡面查詢活動資訊。這種情況就是快取沒有對應的值,資料庫有對應的值。
解決方案:
一句話快取穿透、快取擊穿和快取雪崩都是快取失效導致大量請求直接訪問資料庫而出現的情況。不同的是快取穿透是資料庫和快取都不存在相關資料;而快取擊穿和快取雪崩是快取和資料庫都存在相應資料,只是快取失效了而已。
以上。
緩衝雪崩和緩衝穿透
問題 通俗解釋 由於原有快取失效,新快取未到期間 例如 我們設定快取時採用了相同的過期時間,在同一時刻出現大面積的快取過期 上面兩種圖就可以解釋這個過程了。既然緩衝出現了問題,應該盡快恢復緩衝系統,再乙個當大量的請求衝擊伺服器的時候可以使用像訊息佇列一樣的中介軟體來解決,訊息佇列的乙個作用就是削峰。...
快取穿透,擊穿,雪崩
一 快取處理流程 前台請求,後台先從快取中取資料,取到直接返回結果,取不到時從資料庫中取,資料庫取到更新快取,並返回結果,資料庫也沒取到,那直接返回空結果。二 快取穿透 描述 快取穿透是指快取和資料庫中都沒有的資料,而使用者不斷發起請求,如發起為id為 1 的資料或id為特別大不存在的資料。這時的使...
快取穿透,擊穿,雪崩
快取穿透 在高併發下,查詢乙個不存在的值時,快取不會被命中,導致大量請求直接落到資料庫上,如活動系統裡面查詢乙個不存在的活動。快取擊穿 在高併發下,對乙個特定的值進行查詢,但是這個時候快取正好過期了,快取沒有命中,導致大量請求直接落到資料庫上,如活動系統裡面查詢活動資訊,但是在活動進行過程中活動快取...