导入依赖 根据springboot版本不同自行选择版本
<dependency>
<groupId>org.redisson</groupId>
<artifactId>redisson-spring-boot-starter</artifactId>
<version>3.15.3</version>
</dependency>文章来源:https://www.toymoban.com/news/detail-805376.html
创建客户端文章来源地址https://www.toymoban.com/news/detail-805376.html
@Bean
public RedissonClient redissonClient() {
Config config = new Config();
config.useSingleServer()
.setAddress("redis://192.168.232.100:6379");
return Redisson
.create(config);
}
//创建一个key 如果有这个key lock返回true 否则返回false
RLock lock = redissonClient.getLock("r_lock");
//把全部商品信息放进redis中
storeService.check();
//如果true
if (hasLock) {
try {
String maota = stringRedisTemplate.opsForValue().get("store:1");
Long maotao = Long.valueOf(maota);
if (maotao > 0) {
maotao = stringRedisTemplate.opsForValue().decrement("store:1");
log.debug("售出茅台一瓶,还剩:{}瓶", maotao);
new Thread(()->storeService.updateByBookId(1,1));
return HttpResp.success("去库存成功");
}
} finally {
//成功与否都删除key
lock.unlock();
log.debug("释放分布式锁成功");
}
}
log.debug("去库存失败");
return HttpResp.failed("去库存失败");
}
到了这里,关于运用分布式锁 redisson的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!