新聞中心
Redis緩存穿透是指惡意用戶向緩存服務(wù)器發(fā)出大量無效對象請求,從而使緩存池數(shù)據(jù)為空,給服務(wù)器帶來很大壓力,甚至導(dǎo)致服務(wù)器拒絕服務(wù),從而影響用戶的訪問體驗的現(xiàn)象,即緩存穿透現(xiàn)象。

創(chuàng)新互聯(lián)建站是專業(yè)的瑞金網(wǎng)站建設(shè)公司,瑞金接單;提供網(wǎng)站設(shè)計、成都網(wǎng)站制作,網(wǎng)頁設(shè)計,網(wǎng)站設(shè)計,建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行瑞金網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊,希望更多企業(yè)前來合作!
要了解如何出現(xiàn)Redis緩存穿透現(xiàn)象:當(dāng)惡意用戶發(fā)出大量無效緩存對象請求,而緩存池中沒有無效對象的緩存數(shù)據(jù),那么就會造成緩存穿透。這就相當(dāng)于是把數(shù)據(jù)庫的查詢放入一個空袋子中,必然會得不到結(jié)果,他們很容易攻擊數(shù)據(jù)庫,因此可能導(dǎo)致服務(wù)器拒絕服務(wù),并且數(shù)據(jù)庫的負(fù)載會大量增加而影響正常訪問。
針對這個現(xiàn)象,我們可以采取以下措施:
1. 限制訪問頻率和類型,減少惡意訪問;
// 1秒最多只能請求5個
if(request.getInterval > 1000 && request.getNumber > 5){
denyStart();
}
2. 做校驗,先對輸入進(jìn)行校驗,去除無效參數(shù);
if(!checkGetParams(params)){
redirectIndexPage();
}
// 檢查參數(shù)是否合法
function checkGetParams(params){
for (let i = 0; i
if (!params[i]){
return false;
}
}
return true;
}
3. 增加緩存層,將不存在的緩存層交由緩存層處理,將存在的數(shù)據(jù)緩存層存入緩存,下次訪問時直接去緩存拿,以此減輕數(shù)據(jù)庫的壓力;
if(cacheData == null){
cacheData = fetchDataFromDatabase(); // 從數(shù)據(jù)庫獲取數(shù)據(jù)
setCacheData(cacheData); // 將從數(shù)據(jù)庫搜索到的數(shù)據(jù)放入緩存
}
綜上,Redis緩存穿透是一種不可忽視的現(xiàn)象,但是我們也可以采取一些措施來遏制這一現(xiàn)象,像限制訪問頻率和類型,做校驗,增加緩存層等,以此減少服務(wù)器的壓力,提高用戶的訪問體驗,這樣才能良好的保障系統(tǒng)的穩(wěn)定性。
創(chuàng)新互聯(lián)(cdcxhl.com)提供穩(wěn)定的云服務(wù)器,香港云服務(wù)器,BGP云服務(wù)器,雙線云服務(wù)器,高防云服務(wù)器,成都云服務(wù)器,服務(wù)器托管。精選鉅惠,歡迎咨詢:028-86922220。
新聞標(biāo)題:探究Redis緩存穿透的真相(什么是redis緩存穿透)
標(biāo)題鏈接:http://m.5511xx.com/article/cohhgdo.html


咨詢
建站咨詢
