Redis实战篇02

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();
        }

    }

相关推荐

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-06-09 14:44:03       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-06-09 14:44:03       100 阅读
  3. 在Django里面运行非项目文件

    2024-06-09 14:44:03       82 阅读
  4. Python语言-面向对象

    2024-06-09 14:44:03       91 阅读

热门阅读

  1. MySQL:MySQL的EXPLAIN各字段含义详解

    2024-06-09 14:44:03       26 阅读
  2. 状态设计模式完成商品的创建状态之间的流转

    2024-06-09 14:44:03       26 阅读
  3. Rust-08-枚举和模式匹配

    2024-06-09 14:44:03       27 阅读
  4. 乘积最大子数组 - LeetCode 热题 88

    2024-06-09 14:44:03       28 阅读
  5. 3.组件间通信-mitt(任意组件间通信)

    2024-06-09 14:44:03       30 阅读
  6. spring boot集成pg

    2024-06-09 14:44:03       27 阅读
  7. !力扣70. 爬楼梯

    2024-06-09 14:44:03       25 阅读
  8. 微信小程序:实现音乐播放器的功能

    2024-06-09 14:44:03       26 阅读
  9. oracle10g的dataguard测试

    2024-06-09 14:44:03       24 阅读
  10. 电商系统中热库和冷库的使用与数据转换

    2024-06-09 14:44:03       28 阅读
  11. Python R用法:深度探索与实用技巧

    2024-06-09 14:44:03       29 阅读
  12. K-means聚类模型

    2024-06-09 14:44:03       28 阅读