新聞中心
Redis hash是Redis的一種數(shù)據(jù)結(jié)構(gòu),它是以field-value對(duì)的方式存儲(chǔ)數(shù)據(jù),可以更好地實(shí)現(xiàn)數(shù)據(jù)的存儲(chǔ)和檢索。Redis hash的應(yīng)用之一是樂(lè)觀鎖。樂(lè)觀鎖是利用數(shù)據(jù)庫(kù)本身特性來(lái)實(shí)現(xiàn),它不會(huì)去抱住資源,而是采用合作方式嘗試獲取資源,假設(shè)資源在進(jìn)行操作期間不被搶占,用戶就可以成功獲取該資源。

創(chuàng)新互聯(lián)專注于企業(yè)成都營(yíng)銷網(wǎng)站建設(shè)、網(wǎng)站重做改版、涵江網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、H5響應(yīng)式網(wǎng)站、購(gòu)物商城網(wǎng)站建設(shè)、集團(tuán)公司官網(wǎng)建設(shè)、外貿(mào)營(yíng)銷網(wǎng)站建設(shè)、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁(yè)設(shè)計(jì)等建站業(yè)務(wù),價(jià)格優(yōu)惠性價(jià)比高,為涵江等各大城市提供網(wǎng)站開(kāi)發(fā)制作服務(wù)。
樂(lè)觀鎖的實(shí)現(xiàn)原理是:當(dāng)用戶去修改某個(gè)資源時(shí),首先要向數(shù)據(jù)庫(kù)查詢這個(gè)資源;查詢時(shí)會(huì)在資源的基礎(chǔ)上添加一個(gè)version字段;如果返回的Version字段和請(qǐng)求時(shí)的Version字段一致,那么就可以成功修改資源,然后將Version字段加1保存;如果查詢和修改時(shí)Version字段不一致,則說(shuō)明資源已經(jīng)被用戶在當(dāng)前操作期間修改過(guò),無(wú)法修改,報(bào)出異常。
Redis hash特別適合實(shí)現(xiàn)樂(lè)觀鎖,因?yàn)樗詅ield-value對(duì)的形式存儲(chǔ)資源,每次獲取資源時(shí)都可以記錄Version字段,從而安全的進(jìn)行資源修改操作。值得一提的是,Redis官方提供了一把叫做Watch(監(jiān)視)的鎖,這種鎖可以幫助實(shí)現(xiàn)樂(lè)觀鎖,所以如果需要使用Redis hash實(shí)現(xiàn)樂(lè)觀鎖,最好也使用Watch去完成,這樣可以實(shí)現(xiàn)更高效的操作。
采用Redis hash實(shí)現(xiàn)樂(lè)觀鎖,大致代碼如下:
// 設(shè)置樂(lè)觀鎖
MULTI
WATCH data
// 保存Version字段
HSET data Version 1
// 修改資源
HSET data key1 value1
// 遞增Version字段
HINCRBY data Version 1
EXEC
上面的代碼就可以簡(jiǎn)單實(shí)現(xiàn)Redis hash的樂(lè)觀鎖應(yīng)用。Redis hash的特性使它在實(shí)現(xiàn)樂(lè)觀鎖時(shí)更加高效,用戶可以安全的修改資源,使得整個(gè)系統(tǒng)能正常運(yùn)行。
成都服務(wù)器托管選創(chuàng)新互聯(lián),先上架開(kāi)通再付費(fèi)。
創(chuàng)新互聯(lián)(www.cdcxhl.com)專業(yè)-網(wǎng)站建設(shè),軟件開(kāi)發(fā)老牌服務(wù)商!微信小程序開(kāi)發(fā),APP開(kāi)發(fā),網(wǎng)站制作,網(wǎng)站營(yíng)銷推廣服務(wù)眾多企業(yè)。電話:028-86922220
分享文章:Redis Hash的應(yīng)用:樂(lè)觀所有(credishash)
本文鏈接:http://m.5511xx.com/article/dhsogpe.html


咨詢
建站咨詢
