快取相關知識點

2021-10-08 01:13:23 字數 774 閱讀 7240

二八定律

2.1 快取穿透是說訪問乙個快取中沒有的資料,但是這個資料資料庫中也不存在。普通思路下我們沒有從資料庫中拿到資料是不會觸發加快取操作的。這時如果是有人惡意攻擊,大量的訪問就會透過快取直接打到資料庫,對後端服務和資料庫做成巨大的壓力甚至宕機。

2.2 解決方案:

快取空物件。如果快取未命中,而資料庫中也沒有這個物件,則可以快取乙個空物件到快取。如果使用redis,這種key需設定乙個較短的時間,以防記憶體浪費。

快取**。**key是否存在。如果快取的量不大可以使用hash來判斷,如果量大可以使用布隆過濾器來做判斷。

3.1 快取併發這個場景很容易解釋:多個客戶端同時訪問乙個沒有在cache中的資料,這時每個客戶端都會執行從db載入資料set到快取,就會造成快取併發。

3.2 解決方案:

3.2.1 快取預熱。提前把所有預期的熱資料加到快取。定位熱資料還是比較複雜的事情,需要根據自己的服務訪問情況去評估。這個方案只能減輕快取併發的發生次數不能全部抵制。

3.2.2 快取加鎖。 如果多個客戶端訪問不存在的快取時,在執行載入資料並set快取這個邏輯之前先加鎖,只能讓乙個客戶端執行這段邏輯。

4.1 快取雪崩是快取服務暫時不能提供服務,導致所有的請求都直接訪問db。

4.2 解決方案:

構建高可用的快取系統。目前常用的快取系統redis和memcache都支援高可用的部署方式,所以部署的時候不防先考慮是否要以高可用的集群方式部署。

限流。netflix的hystrix是非常不錯的工具,在用快取時不妨搭配它來使用。

hystrix:

相關知識點

nweb inf uclasses uweb.xml ulib n 從httpservlet 繼承,重寫doget dopost方法 n部署web.xml n 只有乙個物件 n 第一次請求的時候被初始化,只一遍 n 初始化後先呼叫init 方法,只一遍 n 每個請求,呼叫一遍service serv...

Camera相關知識點

1 camera涉及到的概念 1.1 preview capture video preview 預覽 capture 拍照 video 錄影 1.2 幀率 快門 幀率 frame rate 用於測量顯示幀數的量度。所謂的顯示單位為每秒顯示的幀數,簡稱fps或hz 快門 shutter。快門是攝像器...

CURL相關知識點

1,建立乙個curl的會話資源 ch curl init 設定url,引數傳遞出來的時候 curl setopt ch,curlopt url,url 使用post提交的資料 curl setopt ch,curlopt post,1 if post data 設定是否將響應結果存入變數,1或者tr...