redis实现分布式锁
概要
一个分布式锁需要满足以下三个条件:
分布式锁的加锁和释放锁要保证操作的原子性.
锁的拥有者因为异常退出, 锁在合理的时间范围内可以自动释放.
只有锁的拥有者可以释放锁.
使用 setnx key value 实现分布式锁的缺点:
没有设置超时时间, 获取锁的服务器一旦发生OOM挂掉, 其他服务器将不再有机会获取到锁.
如果在value中设置时间, 对锁的存在和超时判断将不是原子性操作.
加锁
获取锁使用如下命令:
set key value [expiration EX second
原创
2021-03-18 19:00:31 ·
128 阅读 ·
0 评论