导入依赖
org.redisson
redisson
3.5.0
/**redission 实现分布式锁(重点掌握)
-
@author wangqiang
-
@version V1.0
-
@date 2019/3/4 15:08
*/
@RestController
public class StockController1 {
@Autowired
private Redisson redisson;
@Autowired
private StringRedisTemplate stringRedisTemplate;
@RequestMapping("/stock")
public String getStock(){
String LockKey= “lock key”;
//获取锁的对象
RLock lock = redisson.getLock(LockKey);
try {
lock.lock(60,TimeUnit.SECONDS);
String stock = stringRedisTemplate.opsForValue().get(“stock”);
int s=Integer.parseInt(stock);
if(s>0){
int reals=s-1;
stringRedisTemplate.opsForValue().set(“stock”,reals+"");
System.out.println(“库存修改成功”+reals);
}
else {
System.out.println(“库存修改失败”);
}
} finally {
lock.unlock();
}return "end";
}
}