ConnectionMultiplexer con = ConnectionMultiplexer.Connect("127.00.1:6379");// -- 1實體化客戶端
IDatabase db= con.GetDatabase();//獲取資料庫 -- 2
var tran = db.CreateTransaction();//創建事物 -- 3
tran.AddCondition(Condition.StringEqual("key","40"));//--4 樂觀鎖
tran.StringSetAsync("key", "60"); --5 別的客戶端修改了key的值
bool result = tran.Execute();//提交事物 --6
有個問題:
當執行第4步的時候,此時key對應value的值是40。
當執行到第6步之前,key的值在B客戶端發生了更改變成30,然后又被C客戶端改成40。
第6步取提交事務,我發現還是可以提交成功。 那這不就是ABA情況嗎?
我用Redis的客戶端 watch,multi,exec都不會出現ABA問題。為什么用StackExchange.Redis會出現啊。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/7122.html
標籤:其他數據庫
