🧑💻作者名称:DaenCode
🎤作者简介:啥技术都喜欢捣鼓捣鼓,喜欢分享技术、经验、生活。
😎人生感悟:尝尽人生百味,方知世间冷暖。
📖所属专栏:SpringBoot实战
系列文章目录
以下是专栏部分内容,更多内容请前往专栏查看!
标题一文带你学会使用SpringBoot+Avue实现短信通知功能(含重要文件代码)一张思维导图带你学会Springboot创建全局异常、自定义异常一张思维导图带你打通SpringBoot自定义拦截器的思路28个SpringBoot项目中常用注解,日常开发、求职面试不再懵圈一张思维导图带你学会SpringBoot、Vue前后端分离项目线上部署一张流程图带你学会SpringBoot结合JWT实现登录功能一张思维导图带你学会使用SpringBoot中的Schedule定时发送邮件一张思维导图带你学会使用SpringBoot异步任务实现下单校验库存一张思维导图带你学会SpringBoot使用AOP实现日志管理功能
专栏推荐
- 专门为Redis入门打造的专栏,包含Redis基础知识、基础命令、五大数据类型实战场景、key删除策略、内存淘汰机制、持久化机制、哨兵模式、主从复制、分布式锁等等内容。
链接>>>>>>>>>
《Redis从头学》 - 专门为RabbitMQ入门打造的专栏,持续更新中。。。。。。。。
链接>>>>>>>
《图解RabbitMQ》
文章目录
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@ConfigurationpublicclassRedissonConfig{@Value("${spring.redis.host}")privateString redisHost;@Value("${spring.redis.port}")privateString redisPort;@Value("${spring.redis.password}")privateString redisPassword;@BeanpublicRedissonClientredissonClient(){//创建配置Config config=newConfig();
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实现分布式锁到此就结束了。感谢大家的阅读,希望大家在评论区对此部分内容散发讨论,便于学到更多的知识。
版权归原作者 DaenCode 所有, 如有侵权,请联系我们删除。