redis学习之分布式锁
分布式锁
1、死锁问题,原因是拿到锁的线程宕机了,解决方案是设置过期时间,且设置过期时间要原子性
2、锁不住问题,原因是拿到锁的线程执行时间过长,过期时间失效了,解决方案是过期时间续命
3、删除别人锁问题,原因是拿到锁的线程卡顿了,另外一个线程进来后,卡顿的线程又往下执行了,把后进来的线程的锁删了。解决方案是拿锁时,设置uuid与线程绑定,且解锁是要原子性,用lua脚本解锁
分布式锁
1、死锁问题,原因是拿到锁的线程宕机了,解决方案是设置过期时间,且设置过期时间要原子性
2、锁不住问题,原因是拿到锁的线程执行时间过长,过期时间失效了,解决方案是过期时间续命
3、删除别人锁问题,原因是拿到锁的线程卡顿了,另外一个线程进来后,卡顿的线程又往下执行了,把后进来的线程的锁删了。解决方案是拿锁时,设置uuid与线程绑定,且解锁是要原子性,用lua脚本解锁
