1 为什么要有分布式锁
在分布式系统中,如果多个节点(JVM)操作同一份资源,会产生数据不一致的情况。
2 实现分布式锁的核心思路
保证在某个时刻只有一JVM可以进行操作
3redis实现分布式锁
获取锁,多个JVM通过setnx命令,同时在redis上创建相同的key,返回1表示获取到锁,返回0表示获取锁失败,没有获取到锁的JVM进行等待
释放锁,在执行完操作的时候删除key,删除key时候要进行判断,只有自己的锁才可以删除。每个key都必须设置有效期,防止死锁发生