可靠的分布式锁,应该具备的几个特征
互斥性 | 在任意时刻,只有一个客户端能持有锁 |
不会发生死锁 | 即使有有一个客户端在持有锁的期间崩溃而没有主动解锁,也能保证后续其他客户端能加锁 |
具有容错性 | 只有大部分的redis节点正常,客户端就可以加锁和解锁 |
解铃还须系铃人 | 加锁和解锁必须是同一个客户端,客户端自己不能把别人加的锁给解锁 |
锁不能自己失效 | 正常执行程序过程中,锁不能因为某些原因失效 |
互斥性 | 在任意时刻,只有一个客户端能持有锁 |
不会发生死锁 | 即使有有一个客户端在持有锁的期间崩溃而没有主动解锁,也能保证后续其他客户端能加锁 |
具有容错性 | 只有大部分的redis节点正常,客户端就可以加锁和解锁 |
解铃还须系铃人 | 加锁和解锁必须是同一个客户端,客户端自己不能把别人加的锁给解锁 |
锁不能自己失效 | 正常执行程序过程中,锁不能因为某些原因失效 |