日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

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

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
改變出路樂觀鎖與悲觀鎖在Redis中的應用(樂觀鎖和悲觀鎖redis)

改變出路:樂觀鎖與悲觀鎖在Redis中的應用

Redis是一種高性能的分布式內存數(shù)據(jù)庫,具有快速讀寫、高并發(fā)、高可用性等特點,也逐漸得到各大公司的重視和采用,尤其在并發(fā)讀寫的場景中能夠發(fā)揮其優(yōu)勢。之前的單線程或多線程鎖技術,往往因為鎖競爭的影響,性能低下,而不再受到許多公司重視,對這一問題,樂觀鎖和悲觀鎖技術則相對簡單實用,并且能夠滿足大部分應用場景,例如:在商城系統(tǒng)中購物車結算、訂單支付等場景,這里我們來看看樂觀鎖和悲觀鎖在Redis中的應用。

讓我們來看一下什么是樂觀鎖和悲觀鎖,它們的主要目的是在多線程或者多進程中友好的實現(xiàn)對數(shù)據(jù)的讀寫,樂觀鎖是一種把握并發(fā)的思想,它是基于一種“萬無一失”的信念,假設其他線程不會修改你正在操作的數(shù)據(jù),使用一系列的算法保證在多線程或多進程環(huán)境下,對資源的操作能夠完美的實現(xiàn);而悲觀鎖則不同,它是基于一種“樂觀得不到想要的”的信念,總是認為其他進程一定會修改你正在操作的數(shù)據(jù),為了避免這種情況出現(xiàn),它使用了一些特殊技術,例如加鎖、等待鎖釋放等,來確保線程或者進程是對該資源的唯一擁有者,在資源使用完成之前,其他線程或者進程將不能訪問該資源。

那么樂觀鎖和悲觀鎖在Redis中的應用究竟是怎樣的呢?下面代碼展示了從Redis中余額的讀寫的操作過程:

“`C++

//賬戶余額當前值

int account_balance=0;

//賬戶余額更新操作代碼

//1.樂觀鎖:

int32_t cur_balance=stringToNum(redisGet(“acct_tot”));

//如果當前余額比賬戶原來余額少,則說明被其他線程(或進程)修改了,這里算作失敗,直接退出本次操作

if (cur_balance

return ;

}

//如果當前余額與賬戶原來的余額一致,那么將其+1操作

redisSet(“acct_tot”, numToString(cur_balance+1));

account_balance = cur_balance;

//2.悲觀鎖

//1先獲取數(shù)據(jù)對應的redis鎖

redisLock(“acct_lock”);

//2讀取數(shù)據(jù)

int32_t cur_balance=stringToNum(redisGet(“acct_tot”))

//如果當前余額比賬戶原來余額少,則說明被其他線程(或進程)修改了,這里算作失敗,直接退出本次操作

if (cur_balance

return ;

}

//3.操作數(shù)據(jù)

redisSet(“acct_tot”, numToString(cur_balance+1))

//4.操作完,釋放鎖

redisUnLock(“acct_lock”)

account_balance = cur_balance;


通過以上代碼可以看出,在Redis中應用樂觀鎖和悲觀鎖的方法有明顯的不同,悲觀鎖在操作數(shù)據(jù)之前必須要先獲取一個能夠關聯(lián)到該數(shù)據(jù)的鎖,以保證操作的安全,這種情況下的缺點很明顯,一旦存在更新數(shù)據(jù)的被鎖住的情況,性能將會受到極大的影響;而樂觀鎖則從一開始就不對操作的數(shù)據(jù)做任何的鎖定,采

成都網(wǎng)站設計制作選創(chuàng)新互聯(lián),專業(yè)網(wǎng)站建設公司。
成都創(chuàng)新互聯(lián)10余年專注成都高端網(wǎng)站建設定制開發(fā)服務,為客戶提供專業(yè)的成都網(wǎng)站制作,成都網(wǎng)頁設計,成都網(wǎng)站設計服務;成都創(chuàng)新互聯(lián)服務內容包含成都網(wǎng)站建設,小程序開發(fā),營銷網(wǎng)站建設,網(wǎng)站改版,服務器托管租用等互聯(lián)網(wǎng)服務。


網(wǎng)站欄目:改變出路樂觀鎖與悲觀鎖在Redis中的應用(樂觀鎖和悲觀鎖redis)
當前鏈接:http://www.dlmjj.cn/article/djdesci.html