java中的锁
Java中的锁是在线程这部分的,又关键字synchronized形成锁的,这个锁是线程锁,只有在同一个JVM中才可以使用,不用服务器访问统一个资源时就没有效果了
Redis分布式锁
使用Redis来实现分布式锁
首先在Redis里占一个位置,其他服务器也要占领这个坑时发现有人了,这样就形成了锁
1、使用setnx来获取锁
第一次使用setnx key value获取锁返回1,第二次获取时发现已经存在了返回0
我们不删除这个锁的话就会一直存在
给锁设置一个时间,超时自动删除锁
在java中使用该代码获取锁
jedis.set("hello","world","NX","EX",20);