springboot整合Redisson分布式锁、RedissonClient、RLock

1.主要流程解读

 //分布式锁
    public void buy(Integer id, Integer num) {
        // 1.制定锁key
        String lockKey = "buy:product:" + id;
        
        // 2.按照key获取锁实例
        RLock lock = redissonClient.getLock(lockKey);
        try {
            //3.获取锁,如果被占用,则等待
            boolean res = lock.tryLock(10, TimeUnit.SECONDS);

            //4.获取锁成功,则进行业务
            if (res) {
                Store store = storeMapper.selectById(id);

                //模拟业务处理休息50毫秒
                try {
                    Thread.sleep(50);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }

                store.setNum(store.getNum() - 1);
                storeMapper.updateById(store);
            }
        } catch (Exception ex) {
            System.out.println("获取锁超时!" + ex);
        } finally {
            // 5.释放锁
            lock.unlock();
        }
    }

2.springboot整合过程

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值