首先我们分布式锁的话,你像我们刚开始是在那个分布式之前没有用分布式架构的时候使用的synchronized锁去加锁的,这种情况下他只能在单机服务器的情况下他是可以达到这样一个目的的,但是在微服务的架构下,他就失效了,因为synchronized他只能锁住当前的服务器,那当我们有多个服务器的时候呢,他就失效了,这时候我们就采用了redis的锁,通常情况下我们可以在redis里面写一个lock等于1这种,当一个线程进去发现有这个数据的时候就表示当前有线程正在运行了。他就会在外面排队等待,当他执行完毕后他就会将该锁进行删除掉,这种情况下他就可以实现,但是这个就是也会有一个问题,万一正在运行的线程它宕机了,他没有将锁去释放掉,这种情况下就容易造成死锁的问题,就别的线程就会无限的进行等待,为了解决这个问题呢我们会给这个数据加一个过期时间,加一个有效时长之后,就算即便正在运行的线程他万一宕机了,一旦有限时间到期后,这个锁还是会自动删除的,也就是别的线程还是可以进来