我有一个 Azure Redis 缓存,并且多个客户端正在使用它。缓存中的共享资源(键)很少需要互斥。我正在使用这里提出的 redlock 算法。
我的要求是每个客户端都需要以互斥的方式访问共享资源。如果客户端无法获取资源锁,那么它应该以 30 秒的间隔不断尝试获取锁,直到它获取它。为了防止死锁,万一进程崩溃,锁应该在 5 分钟后过期。
我已经从github检查了 redock.net 的文档,但我不确定如何正确使用 retry、wait 和 expiry 参数来达到上述标准。任何人都可以指导我朝那个方向发展吗?或者是否有其他详细的文档可用?
代码是用 .NET 编写的,所以我使用的是 StackExchange.Redis 和 Redlock.net