在许多环境中,分布式锁是一种非常有用的原语,其中不同的进程必须以互斥的方式处理共享资源。
有许多库和博客文章描述如何使用Redis实现DLM(分布式锁管理器),但每个库都使用不同的方法,许多使用比稍微复杂的设计所能实现的更低保证的简单方法。
本页面尝试提供一个更加规范的算法来使用Redis实现分布式锁。
我们提出了一种算法,称为 Redlock,它实现了一个我们认为比单实例方法更安全的DLM。
我们希望社区能够对其进行分析、提供反馈,并将其用作实现更复杂或替代设计的起点。
实现
在描述算法之前,这里提供了一些已经可用的实现链接,可以用作参考。
2018年12月12日大约 16 分钟