1.分布式锁Redisson
简单介绍:
使用setnx可能会出现的极端问题:
Redisson的简介:
简单的使用:
业务代码的改造:
private void handleVoucherOrder(VoucherOrder voucherOrder) {
Long userId = voucherOrder.getUserId();
//创建锁对象(兜底)
RLock lock = redissonClient.getLock("lock:order:" + userId);
//获取锁
boolean isLock = lock.tryLock();
//判断是否获取锁成功
if (!isLock) {
//获取失败,返回错误或者重试
throw new RuntimeException("发送未知错误");
}
try {
voucherOrderService.createVoucherOrder(voucherOrder);
} finally {
//释放锁
lock.unlock();
}
}
本站资源均来自互联网,仅供研究学习,禁止违法使用和商用,产生法律纠纷本站概不负责!如果侵犯了您的权益请与我们联系!
转载请注明出处: 免费源码网-免费的源码资源网站 » Redis实战篇02
发表评论 取消回复