【问题标题】:AppFabric Cache to Redis - equivalent of the GetAndLock method?AppFabric 缓存到 Redis - 相当于 GetAndLock 方法?
【发布时间】:2016-05-27 20:05:12
【问题描述】:

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

谢谢。

【问题讨论】:

    标签: redis stackexchange.redis appfabric-cache


    【解决方案1】:

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

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

    还有LockExtendLockQuery 方法。

    有关更多详细信息,请参阅https://stackoverflow.com/a/25138164/2497886

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

    RedLock.net 库实现了 distlock 算法,并支持阻塞/重试获取锁和自动锁扩展等功能。 (免责声明:我是图书馆的作者)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-24
      • 2011-08-17
      相关资源
      最近更新 更多