SpringBoot结合Redisson实现分布式锁

‍作者名称:DaenCode
作者简介:啥技术都喜欢捣鼓捣鼓,喜欢分享技术、经验、生活。
人生感悟:尝尽人生百味,方知世间冷暖。
所属专栏:SpringBoot实战


系列文章目录

以下是专栏部分内容,更多内容请前往专栏查看!

标题
一文带你学会使用SpringBoot+Avue实现短信通知功能(含重要文件代码)
一张思维导图带你学会Springboot创建全局异常、自定义异常
一张思维导图带你打通SpringBoot自定义拦截器的思路
28个SpringBoot项目中常用注解,日常开发、求职面试不再懵圈
一张思维导图带你学会SpringBoot、Vue前后端分离项目线上部署
一张流程图带你学会SpringBoot结合JWT实现登录功能
一张思维导图带你学会使用SpringBoot中的Schedule定时发送邮件
一张思维导图带你学会使用SpringBoot异步任务实现下单校验库存
一张思维导图带你学会SpringBoot使用AOP实现日志管理功能

SpringBoot结合Redisson实现分布式锁_第1张图片


专栏推荐

  • 专门为Redis入门打造的专栏,包含Redis基础知识、基础命令、五大数据类型实战场景、key删除策略、内存淘汰机制、持久化机制、哨兵模式、主从复制、分布式锁等等内容。链接>>>>>>>>>《Redis从头学》
  • 专门为RabbitMQ入门打造的专栏,持续更新中。。。。。。。。链接>>>>>>>《图解RabbitMQ》

文章目录

  • 系列文章目录
  • 专栏推荐
  • 引入依赖
  • 配置文件
  • Redisson配置类
  • 使用
  • 注意事项
  • 写在最后

Redisson官方中文文档:https://github.com/redisson/redisson/wiki/%E7%9B%AE%E5%BD%95

引入依赖

<dependency>
      <groupId>org.redissongroupId>
      <artifactId>redissonartifactId>
      <version>3.10.1version>
dependency>

配置文件

spring:
  redis:
    host: ip
    password: 密码
    port: 端口号

Redisson配置类

@Data
@Configuration
public class RedissonConfig {

    @Value("${spring.redis.host}")
    private String redisHost;

    @Value("${spring.redis.port}")
    private String redisPort;

    @Value("${spring.redis.password}")
    private String redisPassword;

    @Bean
    public RedissonClient redissonClient(){
        //创建配置
        Config config=new Config();
        config.useSingleServer()
                .setPassword(redisPassword)
                .setAddress("redis://"+redisHost+":"+redisPort)
                .setPingConnectionInterval(1000);
        //创建客户端
        RedissonClient redissonClient= Redisson.create(config);
        return redissonClient;
    }
}

使用

String lockKey="user:coupon:"+couponId;
RLock lock = redissonClient.getLock(lockKey);
lock.lock();
try{
	//业务逻辑
}finally{
	lock.unlock
}

注意事项

其加锁API有两个,一个是lock无任何参数;一个是要显式指明解锁时间。
看门狗机制:在redisson实例关闭前,不断的延长锁的有效期。

  1. 默认情况下,不显式设置锁过期时间,看门狗检查锁的超时时间是30秒;或者通过Config.lockWatchdogTimeout来进行指定。
  2. 如果显式的指定了锁过期时间,则无看门狗,并且无需手动释放锁。

写在最后

有关于SpringBoot结合Redisson实现分布式锁到此就结束了。感谢大家的阅读,希望大家在评论区对此部分内容散发讨论,便于学到更多的知识。


请添加图片描述

你可能感兴趣的:(SpringBoot实战,spring,boot,分布式,后端)