Redis做分布式锁

使用redis的setnx方法来保证锁的原子性,获取锁,执行结束释放锁

但是有几个问题

1.如果执行过程中有异常,锁就不会释放  。 可以使用try catch 解决

2.如果服务器挂了,锁也不会释放, 所以锁要设置超时时间 超过了会自动释放锁

3.设置了超时时间10秒,但执行过程很慢要15秒,10秒锁就过期,其他线程拿到会有问题

  所以有一个线程观察超时时间到了,还没执行完给它延长超时时间

 使用Redission

Redis做分布式锁