redis分布式锁,需要满足的条件
1、互斥性
同一时刻只有一个客户端获取到锁
2、不能产生死锁
锁没有被释放,导致死锁,加上一个锁过期时间
3、容错性
当是集群时,主节点获取到锁,但还没来得及同步到从节点上就宕机了,导致从节点切换成主节点时没有获取到锁,从而导致其他客户端获取到锁,利用redlock
4、解锁还需加锁者
解锁时需要进行验证,如果是自己的锁住的锁才能进行解锁
5、可重入锁
当锁过期时间到了之后,程序还没执行完成,导致其他客户端获取到锁,为了避免可以使用看门狗定时器定时重复添加锁的过期时间