释放锁的时候,怎么可以不释放其它人创建的锁?
SetNx加锁的时候,key==关键标识;value==自身唯一的标识即可
jvm01连接到主的redis 做setnx操作的时候,异步将数据同步给从redis;意味着jvm01获取锁成功,正好在这时候主redis宕机了,redis集群自动开启哨兵机制选举,就会选举剩余从节点中某个redis为主redis,就会导致两个jvm获取锁成功(Redis异步同步导致该问题)
1.将Redis异步同步方式改成同步的方式,效率太低
2.Redisson红锁
获取锁的时候,当前客户端(JVM)会向多个不同的redis服务器端执行<br>Setnx操作,只要有一半的redis服务器执行成功,则表示获取锁成功<br>