C#通过Redis实现分布式锁
生活随笔
收集整理的這篇文章主要介紹了
C#通过Redis实现分布式锁
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
原文:C#通過Redis實現分布式鎖
Redis有三個最基本屬性來保證分布式鎖的有效實現:
- 安全性: 互斥,在任何時候,只有一個客戶端能持有鎖。
- 活躍性A:沒有死鎖,即使客戶端在持有鎖的時候崩潰,最后也會有其他客戶端能獲得鎖,超時機制。
- 活躍性B:故障容忍,只有大多數Redis節點時存活的,客戶端仍可以獲得鎖和釋放鎖。
使用StackExchange.Redis 實現起來簡單得很
static void Lock(){Console.WriteLine("Start.........."); var db = _redis.GetDatabase(); RedisValue token = Environment.MachineName; //實際項目秒殺此處可換成商品ID if (db.LockTake("test", token, TimeSpan.FromSeconds(10))) { try { Console.WriteLine("Working.........."); Thread.Sleep(5000); } finally { db.LockRelease("test", token); } } Console.WriteLine("Over.........."); }最后附上GitHub地址:https://github.com/xiaopotian1990/RedisDemo
?
總結
以上是生活随笔為你收集整理的C#通过Redis实现分布式锁的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: git 本地分支与远程分支关联的一种方法
- 下一篇: 新鲜出炉的电信诈骗经历