一、什么是Redisson?
Redisson是一个在Redis的基础上实现的Java驻内存数据网格(In-Memory Data Grid)。它不仅提供了一系列的分布式的Java常用对象,还提供了许多分布式服务,其中就包含了各种分布式锁的实现。
官网地址: https://redisson.org
GitHub地址: https://github.com/redisson/redisson
二、入门使用
1.引入依赖
<!-- 引入Redisson-->
<dependency>
<groupId>org.redisson</groupId>
<artifactId>redisson</artifactId>
<version>3.18.0</version>
</dependency>
2.配置Redisson客户端
@Configuration
public class RedisConfig {
@Bean
public RedissonClient redissonClient(){
//配置类对象
Config config = new Config();
// 添加redis地址,这里添加了单点的地址,也可以使用config.useClusterServers()添加集群地址
config.useSingleServer().setAddress("redis://127.0.0.1:6379").setPassword("0516");
//创建客户端
return Redisson.create(config);
}
}
3.使用Redisson的分布式锁
@Autowired
private RedissonClient redissonClient;
public void testLock() throws InterruptedException {
//获取锁(可重入) 指定锁的名称
RLock lock = redissonClient.getLock("lockName");
//尝试获取锁 参数: 获取锁的最大等待时间(等待的时候会重试) 锁自动释放时间 时间单位
boolean isLock = lock.tryLock(1, 10, TimeUnit.SECONDS);
//判断获取锁是否成功
if(isLock){//成功
try {
System.out.println("加锁成功,执行业务逻辑");
}finally {
//释放锁
lock.unlock();
}
}
}