使用Redis緩存時出現的問題和解決辦法-創新互聯

Redis緩存知識問題
緩存穿透:
條件:緩存穿透是指查詢一個一定不存在的數據,由于緩存是不命中時被動寫的,并且出于容錯考慮,如果從存儲層查不到數據則不寫入緩存,這將導致這個不存在的數據每次請求都要到存儲層去查詢,失去了緩存的意義。在流量大時,可能DB就掛掉了,要是有人利用不存在的key頻繁攻擊我們的應用,這就是漏洞。
解決方案:
有很多種方法可以有效地解決緩存穿透問題,最常見的則是采用布隆過濾器,將所有可能存在的數據哈希到一個足夠大的bitmap中,一個一定不存在的數據會被 這個bitmap攔截掉,從而避免了對底層存儲系統的查詢壓力。另外也有一個更為簡單粗暴的方法(我們采用的就是這種),如果一個查詢返回的數據為空(不管是數 據不存在,還是系統故障),我們仍然把這個空結果進行緩存,但它的過期時間會很短,最長不超過五分鐘。

創新互聯自2013年起,是專業互聯網技術服務公司,擁有項目網站制作、網站建設網站策劃,項目實施與項目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元枝江做網站,已為上家服務,為枝江各地企業和個人服務,聯系電話:18982081108

緩存擊穿:
條件:對于一些設置了過期時間的key,如果這些key可能會在某些時間點被超高并發地訪問,是一種非常“熱點”的數據。這個時候,需要考慮一個問題:緩存被“擊穿”的問題,這個和緩存雪崩的區別在于這里針對某一key緩存,前者則是很多key。
緩存在某個時間點過期的時候,恰好在這個時間點對這個Key有大量的并發請求過來,這些請求發現緩存過期一般都會從后端DB加載數據并回設到緩存,這個時候大并發的請求可能會瞬間把后端DB壓垮
解決方案:
使用互斥鎖(mutex key)
業界比較常用的做法,是使用mutex。簡單地來說,就是在緩存失效的時候(判斷拿出來的值為空),不是立即去load db,而是先使用緩存工具的某些帶成功操作返回值的操作(比如Redis的SETNX或者Memcache的ADD)去set一個mutex key,當操作返回成功時,再進行load db的操作并回設緩存;否則,就重試整個get緩存的方法。
SETNX,是「SET if Not eXists」的縮寫,也就是只有不存在的時候才設置,可以利用它來實現鎖的效果。
"提前"使用互斥鎖(mutex key)
在value內部設置1個超時值(timeout1), timeout1比實際的memcache timeout(timeout2)小。當從cache讀取到timeout1發現它已經過期時候,馬上延長timeout1并重新設置到cache。然后再從數據庫加載數據并設置到cache中。
"永遠不過期:"
從redis上看,確實沒有設置過期時間,這就保證了,不會出現熱點key過期問題,也就是“物理”不過期。
從功能上看,如果不過期,那不就成靜態的了嗎?所以我們把過期時間存在key對應的value里,如果發現要過期了,通過一個后臺的異步線程進行緩存的構建,也就是“邏輯”過期
資源保護:
采用netflix的hystrix,可以做資源的隔離保護主線程池,如果把這個應用到緩存的構建也未嘗不可。

緩存雪崩:
條件:緩存雪崩是指在我們設置緩存時采用了相同的過期時間,導致緩存在某一時刻同時失效,請求全部轉發到DB,DB瞬時壓力過重雪崩。
解決方案:
緩存失效時的雪崩效應對底層系統的沖擊非常可怕。大多數系統設計者考慮用加鎖或者隊列的方式保證緩存的單線 程(進程)寫,從而避免失效時大量的并發請求落到底層存儲系統上。這里分享一個簡單方案就時講緩存失效時間分散開,比如我們可以在原有的失效時間基礎上增加一個隨機值,比如1-5分鐘隨機,這樣每一個緩存的過期時間的重復率就會降低,就很難引發集體。


另外有需要云服務器可以了解下創新互聯scvps.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業上云的綜合解決方案,具有“安全穩定、簡單易用、服務可用性高、性價比高”等特點與優勢,專為企業上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。

分享標題:使用Redis緩存時出現的問題和解決辦法-創新互聯
鏈接地址:http://m.kartarina.com/article4/cdcpie.html

成都網站建設公司_創新互聯,為您提供網站維護企業網站制作營銷型網站建設手機網站建設電子商務域名注冊

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

手機網站建設
主站蜘蛛池模板: 亚洲日韩乱码中文无码蜜桃臀网站| 最新国产精品无码| 少妇精品无码一区二区三区| 亚洲精品高清无码视频| 波多野结衣AV无码久久一区| 无码aⅴ精品一区二区三区浪潮| 在线看片福利无码网址| 狠狠躁狠狠躁东京热无码专区| 色综合久久久久无码专区| WWW久久无码天堂MV| 久久亚洲AV成人无码电影| 国产麻豆天美果冻无码视频| 永久免费av无码网站韩国毛片| 国产成人无码精品久久久免费| 亚洲天然素人无码专区| 日韩精品无码一本二本三本| 国模无码一区二区三区不卡| 日韩精品无码区免费专区| 人妻精品久久无码专区精东影业| 国产精品无码一本二本三本色| AV无码久久久久不卡蜜桃| 无码精品黑人一区二区三区| 久久中文字幕无码专区| 国语成本人片免费av无码| 免费无码毛片一区二区APP| 国产精品无码av在线播放| 久久久人妻精品无码一区| 无码av中文一区二区三区桃花岛| 无码夫の前で人妻を犯す中字 | 亚洲国产av无码精品| 久久AV无码精品人妻出轨| 无码人妻丰满熟妇区96| 亚洲综合无码一区二区三区 | 精品国精品无码自拍自在线| 亚洲午夜福利AV一区二区无码| 国产激情无码一区二区三区| 中文字幕丰满乱子无码视频| 中文字幕无码AV波多野吉衣| a级毛片无码免费真人久久| 成在人线av无码免费高潮喷水| 中文字幕久久精品无码|