回到目錄
分布鎖主要用在多程序共同通路同一個資源時候,用來保持同一時間段隻能有一個程序執行,同時避免了并發沖突的出現,這在很多場景都會用到,像秒殺庫存,抽獎庫存,多操作者處理一家公司等。
void TestLock()
{
//代碼段鎖定,隻允許一下程序通路,逾時時間100秒,注意,它鎖的是key
if (redisManager.Instance.GetDatabase().LockTake("redislockqueeu", "1", TimeSpan.FromMilliseconds(100)))
{
try
{
Console.WriteLine("正在處理……");
Thread.Sleep(1000);
}
catch (Exception)
{
throw;
}
finally
{
//處理結束後釋放redis程序鎖,否則還要阻塞100毫秒
redisManager.Instance.GetDatabase().LockRelease("PrizeKey", "prize");
}
}
Console.WriteLine("redis正被其它程序使用");
}
你可以寫個并成的程式去測試一下,然後把它封裝一下,友善其它開發人員直接使用!
感謝閱讀!
作者:倉儲大叔,張占嶺,
榮譽:微軟MVP
QQ:853066980
支付寶掃一掃,為大叔打賞!