Redis分布式锁正确的实现方法,加redis锁,redis加锁

Redis分布式锁正确的实现方法

首先我们要通过Maven引入Jedis开源组件,在pom.xml文件加入下面的代码:

<dependency>
    <groupId>redis.clients</groupId>
    <artifactId>jedis</artifactId>
    <version>2.9.0</version>
</dependency>

 

@Autowired
private RedisSimpleClient redisClient;

关键代码:
String result = redisClient.setStr("key", "val", "NX", "EX", 30);
if("OK".equals(result)){
  //加锁成功
}else{
  // result == null
//加锁失败
}

参数解释:

第一个为key,我们使用key来当锁,因为key是唯一的。

第二个为value

第三个为nxxx,这个参数我们填的是NX,意思是SET IF NOT EXIST,即当key不存在时,我们进行set操作;若key已经存在,则不做任何操作

第四个为expx,这个参数我们传的是EX (秒)或PX(毫秒),过期时间设置,具体时间由第五个参数决定。

第五个为expireTime, 代表key的过期时间。

总的来说,执行上面的set()方法就只会导致两种结果:

1. 当前没有锁(key不存在),那么就进行加锁操作,并对锁设置个有效期,同时value表示加锁的客户端。

2. 已有锁存在,不做任何操作。

posted @ 2021-12-30 11:24  君子笑而不语  阅读(44)  评论(0编辑  收藏  举报