-
基本概况
- 分布式锁的要求:
- 互斥性。在任意时刻,只有一个客户端能持有锁。
- 不会发生死锁。即使有一个客户端在持有锁的期间崩溃而没有主动解锁,也能保证后续其他客户端能加锁。
- 独立性。加锁和解锁必须是同一个客户端,客户端自己不能把别人加的锁给解了。
- 具有容错性。只要大部分的Redis节点正常运行,客户端就可以加锁和解锁。
- 互斥性
SET key value [EX seconds] [PX milliseconds] [NX|XX] releaseLockTime
- NX – 不存在时才能设置成功. XX – 存在时才能设置成功
- EX = seconds; PX = milliseconds
- 单语句保证了原子性操作,即加锁判断和设置过期时间在一个原子操作中完成.
DEL key
- 分布式锁的要求:
-
单节点下的redis分布式锁
-
持锁节点宕机(死锁)
解决方案: 加入超时时间releaseL
-
基于Redis分布式锁
最新推荐文章于 2021-02-01 20:00:00 发布