Redlock Redis-based distributed locks implementation in .Net See More:Distributed locks with Redis
StackExchange.Redis GitHub Nuget
ConnectionMultiplexer connection = ConnectionMultiplexer.Connect("127.0.0.0:6379,allowAdmin=true");
var redLockFactory = new RedLockFactory(connection);
using (var redLock = redLockFactory.GetLock("lock", TimeSpan.FromMinutes(10), 2, TimeSpan.FromSeconds(2)))
{
Console.WriteLine("[A] Try to get lock");
if (redLock.IsAcquired)
{
Console.WriteLine("[A] Geted lock");
Thread.Sleep(10000);
}
else
{
Console.WriteLine("[A] UnAcquired");
}
}