redis实现分布式锁
Redis实现分布式锁
分布式锁一般有三种实现方式:1、基于数据库乐观锁;2、基于Redis的分布式锁;3、基于Zookeeper的分布式锁。本文档主要介绍基于Redis实现分布式锁的方法。
1、加锁
// redis加锁
public boolean getLock(Jedis jedis,String key,int expire){
String uuid =UUID.randomUUID().toString();
String result = jedis.set(key,uuid,"NX","PX",expire);
if(Objects.equals("OK",result)){
logger.info("redis加锁成功");
return true;
}else{
logger.info("redis锁已存在,加锁失败");
return false;
}
}
- 第一个为key,我们使用key来当锁,因为key是唯一的。
- 第二个为value,使用uuid便于解锁的时候确保解的是同一把锁。
- 第三个为nxxx,这个参数我们填的是NX,
参考:https://www.cnblogs.com/shenlei-blog/p/15597272.html