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

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


咨詢
建站咨詢
