1.利用setnx(key,str)即SET If Not eXists来实现分布式锁
if(!jedis.exists(key)) {
String str=SerializeUtil.serializeObject(value);
Long status=jedis.setnx(key,str);
if(status==1) {
jedis.expire(key,seconds);
return true;
} else {
return false;
}
}
2.运用redis锁的boilerplate
boolean lock=redisUtil.redisLock(key,value,expire);
if(lock){//如果成功获取锁
//do something you want to do
redisUtil.redisUnlock(key);
}