系列文章目录
以下是专栏部分内容,更多内容请前往专栏查看!
专栏推荐
- 专门为Redis入门打造的专栏,包含Redis基础知识、基础命令、五大数据类型实战场景、key删除策略、内存淘汰机制、持久化机制、哨兵模式、主从复制、分布式锁等等内容。
链接>>>>>>>>>
《Redis从头学》 - 专门为RabbitMQ入门打造的专栏,持续更新中。。。。。。。。
链接>>>>>>>
《图解RabbitMQ》
🌟引入依赖
<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实现分布式锁到此就结束了。感谢大家的阅读,希望大家在评论区对此部分内容散发讨论,便于学到更多的知识。