使用StackExchange.Redis 组件操作Redis
Github:https://github.com/StackExchange/StackExchange.Redis
Nuget:https://www.nuget.org/packages/StackExchange.Redis/
var redis = RedisHelper.GetDatabase(); //获取一个锁,30秒自动释放,如果锁没获取到,1秒后继续获取 while (!redis.LockTake("lockName", "", TimeSpan.FromSeconds(30))) { Thread.Sleep(1000); } try { //获取到锁后执行的业务操作,操作需要在30秒内完成,不然其它线程会获取到锁,会造成数据不安全,或者把锁的过期时间设为足够大 } catch (Exception ex) { } finally { //业务操作完成释放锁 redis.LockRelease("lockName", ""); }