新聞中心
Redis是常用的互動(dòng)式數(shù)據(jù)庫,它有幾個(gè)定制支持功能,可以快速設(shè)置KEY/VALUE,但是用戶也需要注意幾個(gè)因素避免重復(fù)設(shè)置Key,以下我們將介紹幾個(gè)步驟:

創(chuàng)新互聯(lián)從2013年成立,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目成都網(wǎng)站建設(shè)、成都網(wǎng)站制作網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢(mèng)想脫穎而出為使命,1280元確山做網(wǎng)站,已為上家服務(wù),為確山各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:18980820575
首先是利用Redis的EXISTS命令來確認(rèn)Key是否已存在,如果存在,則直接拒絕設(shè)置Key的操作,具體代碼如下:
“`
//這里假設(shè)$key為用戶設(shè)置Key的值
if (redis-exist($key)) {
//設(shè)置$key失敗
return false;
}
//設(shè)置$key成功
redis-set($key);
return true;
其次是采用Redis的SetNX命令可以避免重復(fù)設(shè)置Key,該命令是原子性操作,只有當(dāng)Key不存在時(shí),才會(huì)設(shè)置Key的值,否則事務(wù)將失敗。如下:
//這里假設(shè)$key為用戶設(shè)置Key的值
if (redis-setnx($key)) {
//設(shè)置$key失敗
return false;
}
//設(shè)置$key成功
redis-set($key);
return true;
利用Redis的MSETEX命令可以安全的設(shè)置Key的值,該命令類似于Redis的SETNX命令,也會(huì)校驗(yàn)Key是否已存在,如果存在,則不會(huì)進(jìn)行設(shè)置Key的操作,如下:
//這里假設(shè)$key為用戶設(shè)置Key的值
if (redis-setex($key)) {
//設(shè)置$key失敗
return false;
}
//設(shè)置$key成功
redis-set($key);
return true;
定義一個(gè)SetUnique函數(shù)以上文中提到的方法綜合模式,可以讓用戶安全的維護(hù)Key的唯一性,如下:
function SetUnique($key){
if (redis-exist($key)) {
return false;
}
if (redis-setnx($key)) {
return false;
}
if (redis-setex($key)) {
return false;
}
redis-set($key);
return true;
}
通過上面的步驟,可以安全的確保Redis中Key的唯一性,以免重復(fù)設(shè)置Key導(dǎo)致的異常。
四川成都云服務(wù)器租用托管【創(chuàng)新互聯(lián)】提供各地服務(wù)器租用,電信服務(wù)器托管、移動(dòng)服務(wù)器托管、聯(lián)通服務(wù)器托管,云服務(wù)器虛擬主機(jī)租用。成都機(jī)房托管咨詢:13518219792
創(chuàng)新互聯(lián)(www.cdcxhl.com)擁有10多年的服務(wù)器租用、服務(wù)器托管、云服務(wù)器、虛擬主機(jī)、網(wǎng)站系統(tǒng)開發(fā)經(jīng)驗(yàn)、開啟建站+互聯(lián)網(wǎng)銷售服務(wù),與企業(yè)客戶共同成長,共創(chuàng)價(jià)值。
網(wǎng)站標(biāo)題:Redis異常避免重復(fù)設(shè)置Key(redis重復(fù)設(shè)置key)
轉(zhuǎn)載注明:http://www.5511xx.com/article/djpdpij.html


咨詢
建站咨詢
