我目前正在从 Microsoft AppFabric Cache 迁移到 Windows 上的 Redis。 过去,我使用的是 AppFabric 的 GetAndLock 方法。 Redis 中是否有执行 GetAndLock 的方法? (我正在使用 StackExchange.Redis.StrongName block 库)。
谢谢。
最佳答案
StackExchange.Redis 有一些锁定方法,如果您试图保护关键代码部分免于一次运行多次。
if (connectionMultiplexer.GetDatabase().LockTake(key, token, duration))
{
try
{
// do stuff
}
finally
{
connectionMultiplexer.GetDatabase().LockRelease(key, token);
}
}
还有LockExtend
和LockQuery
方法。
参见 https://stackoverflow.com/a/25138164/2497886了解更多详细信息。
关于分布式锁的 redis 文档也值得一看 - http://redis.io/topics/distlock .
RedLock.net库实现了 diSTLock 算法,并支持阻塞/重试获取锁和自动锁扩展等功能。 (免责声明:我是图书馆的作者)
关于redis - AppFabric 缓存到 Redis - 等效于 GetAndLock 方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37465260/