当前位置:   article > 正文

分布式架构下基于Redisson实现Redis分布式锁_redisson实现分布式锁

redisson实现分布式锁

public class RedisLockController {

private static final Logger LOGGER = LoggerFactory.getLogger(RedisLockController.class);

@Resource

private StringRedisTemplate stringRedisTemplate;

@RequestMapping(“/deduct_stock”)

@Transactional

public ApiResult deductStock() {

String lockKey = “lockKey”;

String clientId = UUID.randomUUID().toString();

try {

Boolean flag = stringRedisTemplate.opsForValue().setIfAbsent(lockKey, clientId, 30, TimeUnit.SECONDS);

if (!flag) return new ApiResult(ReturnEnum.FAILED, “Not the same lock”);

int stockNum = Integer.parseInt(stringRedisTemplate.opsForValue().get(“stock”));

if (stockNum > 0) {

int realStockNum = stockNum - 1;

stringRedisTemplate.opsForValue().set(“stock”, realStockNum + “”);

LOGGER.info(“扣减成功,剩余库存:{}”, realStockNum);

} else

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小桥流水78/article/detail/848402
推荐阅读
相关标签
  

闽ICP备14008679号