新聞中心
Redis鎖是一種基于Redis緩存技術(shù)提供的分布式計(jì)算環(huán)境中的獨(dú)占鎖。使用Redis實(shí)現(xiàn)共享鎖時(shí),Redis Key的命名規(guī)則是非常重要的,它會(huì)影響分布式系統(tǒng)的可靠性和安全性。下面,我們來認(rèn)真的解析一下背后的Redis Key命名規(guī)則。

常用的Redis鎖Key有三種命名規(guī)則:
(1):lock格式
譬如:account:123456:lock,其中鎖名account即請求的資源,123456為業(yè)務(wù)ID,可以根據(jù)具體你實(shí)際情況來進(jìn)行相應(yīng)的定制。
(2)_:lock格式
譬如:app1_account:123456:lock,其中應(yīng)用ID為app1,業(yè)務(wù)ID為123456,一般這種格式使用在機(jī)器分布部署較為分散的場景,如應(yīng)用服務(wù)發(fā)布比較密集的服務(wù)環(huán)境,能夠有效的過濾掉不同服務(wù)的干擾。
(3)_:lock格式
譬如:on_account:123456,此種規(guī)則主要用于資源開關(guān)控制,譬如一些高頻業(yè)務(wù)上,可以根據(jù)業(yè)務(wù)需要來進(jìn)行上線和下線,當(dāng)下線時(shí),采用此種格式可以有效的降低資源的獲取壓力。
當(dāng)對資源加鎖時(shí),鎖的核心代碼如下:
String lockKey = “account:”+accountId+”:lock”;
// 上鎖,給定過期時(shí)間
long lock = redissonClient.getLock(lockKey).tryLock(wtTime, leaseTime, TimeUnit.MILLISECONDS);
if (lock) {
// 加鎖成功獲取業(yè)務(wù)數(shù)據(jù)處理
return true;
}
通過上面的代碼,分析一下其中的lockKey命名規(guī)則,可以知道,此種命名規(guī)則主要有兩個(gè)部分:一是鎖名,二是業(yè)務(wù)ID,使用這種命名規(guī)則可以有效的保證不同的鎖的唯一性,并且根據(jù)業(yè)務(wù)ID可以找到每一把鎖對應(yīng)的資源,能夠幫助我們有效的限制使用鎖的范圍,從而達(dá)到良好的資源管理效果。
正確理解Redis Key命名規(guī)則能夠有效的過濾掉不同服務(wù)的干擾,保證分布式系統(tǒng)的可靠性和安全性,也是應(yīng)用Redis鎖進(jìn)行分布式計(jì)算環(huán)境中分布式系統(tǒng)性能和安全性一個(gè)重要組成部分。
香港服務(wù)器選創(chuàng)新互聯(lián),2H2G首月10元開通。
創(chuàng)新互聯(lián)(www.cdcxhl.com)互聯(lián)網(wǎng)服務(wù)提供商,擁有超過10年的服務(wù)器租用、服務(wù)器托管、云服務(wù)器、虛擬主機(jī)、網(wǎng)站系統(tǒng)開發(fā)經(jīng)驗(yàn)。專業(yè)提供云主機(jī)、虛擬主機(jī)、域名注冊、VPS主機(jī)、云服務(wù)器、香港云服務(wù)器、免備案服務(wù)器等。
名稱欄目:解析Redis鎖背后的Key命名規(guī)則(redis鎖的key名)
文章轉(zhuǎn)載:http://www.dlmjj.cn/article/dhjpjdo.html


咨詢
建站咨詢
