Redis设计分布式锁

通过Redis高版本的原子命令
jedis.set(lockName, "", "NX", "PX", expireTime);

代码分析

  1. redis的set命令可以携带复杂参数,第一个是锁的key,第二个是value,可以存放获取锁的客户端ID,通过这个校验是否当前客户端获取到了锁,第三个参数取值NX/XX,第四个参数 EX|PX,第五个就是时间
  2. NX:如果不存在就设置这个key XX:如果存在就设置这个key
  3. EX:单位为秒,PX:单位为毫秒
  4. 这个命令实质上就是把我们之前的setNx和expire命令合并成一个原子操作命令,不需要我们考虑set失败或者expire失败的情况

猜你喜欢

转载自blog.csdn.net/qq1332479771/article/details/88585382