我read about Redis被用于互斥。 Docs说出以下内容:
有人可以解释这个简单的实现可以通过什么条件来实现互斥。
对于尝试执行某些重要工作的所有实例,请执行以下操作(伪代码):
while ( set keyForMutex anyValue nx == nil )
{
sleep ( 200 ms )
}
Finish up the critical task.
del keyForMutex
答案 0 :(得分:1)
这不会在实现互斥方面失败,但如果您的代码在删除密钥之前就已经死亡,它可能会过度成功并提供无限排除。
一种可能的解决方案是在超时之后使密钥到期,以便让关键任务结束。