🧑💻作者名称:DaenCode
🎤作者简介:啥技术都喜欢捣鼓捣鼓,喜欢分享技术、经验、生活。
😎人生感悟:尝尽人生百味,方知世间冷暖。
📖所属专栏:SpringBoot实战
系列文章目录
以下是专栏部分内容,更多内容请前往专栏查看!
标题 |
---|
一文带你学会使用SpringBoot+Avue实现短信通知功能(含重要文件代码) |
一张思维导图带你学会Springboot创建全局异常、自定义异常 |
一张思维导图带你打通SpringBoot自定义拦截器的思路 |
28个SpringBoot项目中常用注解,日常开发、求职面试不再懵圈 |
一张思维导图带你学会SpringBoot、Vue前后端分离项目线上部署 |
一张流程图带你学会SpringBoot结合JWT实现登录功能 |
一张思维导图带你学会使用SpringBoot中的Schedule定时发送邮件 |
一张思维导图带你学会使用SpringBoot异步任务实现下单校验库存 |
一张思维导图带你学会SpringBoot使用AOP实现日志管理功能 |
专栏推荐
- 专门为Redis入门打造的专栏,包含Redis基础知识、基础命令、五大数据类型实战场景、key删除策略、内存淘汰机制、持久化机制、哨兵模式、主从复制、分布式锁等等内容。
链接>>>>>>>>>
《Redis从头学》 - 专门为RabbitMQ入门打造的专栏,持续更新中。。。。。。。。
链接>>>>>>>
《图解RabbitMQ》
文章目录
- 系列文章目录
- 专栏推荐
- 🌟引入依赖
- 🌟配置文件
- 🌟Redisson配置类
- 🌟使用
- 🌟注意事项
- 🌟写在最后
Redisson官方中文文档:https://github.com/redisson/redisson/wiki/%E7%9B%AE%E5%BD%95
🌟引入依赖
<dependency>
<groupId>org.redisson</groupId>
<artifactId>redisson</artifactId>
<version>3.10.1</version>
</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实例关闭前,不断的延长锁的有效期。
- 默认情况下,不显式设置锁过期时间,看门狗检查锁的超时时间是30秒;或者通过Config.lockWatchdogTimeout来进行指定。
- 如果显式的指定了锁过期时间,则无看门狗,并且无需手动释放锁。
🌟写在最后
有关于SpringBoot结合Redisson实现分布式锁到此就结束了。感谢大家的阅读,希望大家在评论区对此部分内容散发讨论,便于学到更多的知识。