AppFabric 缓存到 Redis - 等效于 GetAndLock 方法?

AppFabric Cache to Redis - equivalent of the GetAndLock method?

我目前正在 Windows 从 Microsoft AppFabric Cache 迁移到 Redis。 过去,我使用的是 AppFabric 的 GetAndLock 方法。 Redis 中是否有执行 GetAndLock 的方法? (我正在使用 StackExchange.Redis.StrongName 金块库)。

谢谢。

StackExchange.Redis 有一些锁定方法,如果您试图保护关键代码部分不被 运行 一次多次。

if (connectionMultiplexer.GetDatabase().LockTake(key, token, duration))
{
    try
    {
        // do stuff
    }
    finally
    {
        connectionMultiplexer.GetDatabase().LockRelease(key, token);
    }
}

还有LockExtendLockQuery方法。

有关更多详细信息,请参阅 。

关于分布式锁的 redis 文档也值得一看 - http://redis.io/topics/distlock

RedLock.net库实现了distlock算法,支持blocking/retrying获取锁和自动锁扩展。 (免责声明:我是图书馆的作者)