日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
解決Redis雪崩和穿透的優(yōu)秀代碼(redis雪崩和穿透代碼)

實例

成都創(chuàng)新互聯(lián)是一家集網(wǎng)站建設(shè),海鹽企業(yè)網(wǎng)站建設(shè),海鹽品牌網(wǎng)站建設(shè),網(wǎng)站定制,海鹽網(wǎng)站建設(shè)報價,網(wǎng)絡(luò)營銷,網(wǎng)絡(luò)優(yōu)化,海鹽網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強企業(yè)競爭力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時我們時刻保持專業(yè)、時尚、前沿,時刻以成就客戶成長自我,堅持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實用型網(wǎng)站。

解決Redis雪崩和穿透的優(yōu)秀代碼實例

Redis是一種開源、速度快、可以使用豐富數(shù)據(jù)類型的非關(guān)系型數(shù)據(jù)庫,一般它在應(yīng)用開發(fā)中用作存儲會話信息,實現(xiàn)用戶身份認(rèn)證、緩存查詢結(jié)果以及實現(xiàn)負(fù)載均衡等功能,但是隨著Redis在開發(fā)中被越來越多的應(yīng)用,Redis也將會遭受到各種性能問題的困擾,其中包括Redis雪崩和穿透的問題。本文將介紹一些解決Redis雪崩和穿透的優(yōu)秀代碼實例。

一、解決Redis雪崩的代碼實例

在解決Redis雪崩的問題上,可以采用如下代碼實例:

第一步,設(shè)置訪問的的Redis的超時時間,采用如下代碼:

jedis.setex(key, expireSeconds, values);

作用:將keys及其value值存儲在Redis中,并且設(shè)置超時時間expireSeconds。

第二步,利用JedisPool配置信息配置Redis連接池,采用如下代碼:

JedisPoolConfig configs = new JedisPoolConfig();
configs.setMaxTotal(maxTotal);
configs.setMaxIdle(maxIdle);
configs.setMinIdle(minIdle);
//......
JedisPool jedisPool = new JedisPool(configs, host, port, connectTimeout, soTimeout);

其中,maxTotal是指最大連接數(shù),maxIdle指最大空閑連接數(shù),而minIdle指最小空閑連接數(shù)。

第三步,利用Redis的Lua腳本及Redis的延遲隊列處理業(yè)務(wù),采用如下代碼:

String luaScript="if redis.call('get',KEYS[1]) then return redis.call('del', KEYS[1]) else return 0 end";

這段代碼是一段Redis Lua腳本,當(dāng)業(yè)務(wù)釋放時,在Lua腳本中處理消息,然后把消息放入一個叫做Redis延遲隊列的Redis中,以提供更好的數(shù)據(jù)安全保證和效率提升。

二、解決Redis穿透的代碼實例

在解決Redis穿透的問題上,可以采用如下代碼實例:

第一步,對外開放的接口均使用IP黑白名單控制,以及常用的用戶代理檢測,采用如下代碼:

String ip = request.getRemoteHost();
String agent = request.getHeader("User-Agent");

if(!IPWhiteList.contns(ip) || !UAWhiteList.contns(agent)) {
// IGNORE
}

這段代碼可以檢測請求的IP和用戶代理,如果訪問IP不在IP白名單中或訪問用戶代理不在用戶代理白名單中,則認(rèn)為是爬蟲請求,則忽略。

第二步,對外暴露的接口使用接口限流,可以采用窗口機制實現(xiàn),采用如下代碼:

//每隔10s統(tǒng)計一次請求
long timeInterval =10000;
//最大請求次數(shù)
long maxRequest=(100);
//當(dāng)前時間
long timeCurrent= System.currentTimeMillis();
//第一次到訪的時間
long timeFirst=getFirstTime();
//頻率計算
long current frequency=getCurrentFrequency(timeCurrent,timeFirst,timeInterval);
if(current frequency>maxRequest){
//攔截請求
}

上面的代碼分別是設(shè)置統(tǒng)計的時間間隔,設(shè)置最大請求次數(shù),計算出當(dāng)前請求的頻率,并根據(jù)最大請求次數(shù)攔截請求。

如果在開發(fā)中想要解決Redis的雪崩和穿透的問題,可以采用上面提供的優(yōu)秀代碼實例,它們可以有效解決Redis雪崩和穿透的問題,有效提高Redis性能。

成都網(wǎng)站營銷推廣找創(chuàng)新互聯(lián),全國分站站群網(wǎng)站搭建更好做SEO營銷。
創(chuàng)新互聯(lián)(www.cdcxhl.com)四川成都IDC基礎(chǔ)服務(wù)商,價格厚道。提供成都服務(wù)器托管租用、綿陽服務(wù)器租用托管、重慶服務(wù)器托管租用、貴陽服務(wù)器機房服務(wù)器托管租用。


分享名稱:解決Redis雪崩和穿透的優(yōu)秀代碼(redis雪崩和穿透代碼)
轉(zhuǎn)載來源:http://www.5511xx.com/article/cdpishe.html