StackExchange.Redis笔记-分布式锁

分布式系统中,原子执行一段代码,比如减库存

RedisValue token = Environment.MachineName;
            //lock_key表示的是redis数据库中该锁的名称,不可重复。 
            //token用来标识谁拥有该锁并用来释放锁。
            //TimeSpan表示该锁的有效时间。10秒后自动释放,避免死锁。
            if (db.LockTake("lock_key", token, TimeSpan.FromSeconds(10)))
            {
                try
                {
                    //TODO:开始做你需要的事情
                    Thread.Sleep(5000);
                }
                finally
                {
                    db.LockRelease("lock_key", token);//释放锁
                }
            }
原文地址:https://www.cnblogs.com/fanfan-90/p/13247080.html