以下是一个使用Redisson实现分布式锁的完整示例。
- 在pom.xml文件中添加Redisson和Spring Boot Starter Redis依赖项:
<dependency>
<groupId>org.redisson</groupId>
<artifactId>redisson</artifactId>
<version>3.15.2</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
- 创建一个名为RedissonConfig的类,并在其中创建一个名为redissonClient的Bean:
@Configuration
public class RedissonConfig {
@Bean
public RedissonClient redissonClient() {
Config config = new Config();
config.useSingleServer()
.setAddress("redis://127.0.0.1:6379")
.setDatabase(0);
return Redisson.create(config);
}
}
此处使用单节点Redis服务器。
- 在需要使用分布式锁的地方注入redissonClient,并使用以下代码获取锁:
@Autowired
private RedissonClient redissonClient;
...
RLock lock = redissonClient.getLock("myLock");
lock.lock();
try {
// 获得锁之后执行的代码
} finally {
lock.unlock();
}
这里我们使用名称为“myLock”的锁。在获取锁之后,我们使用try-finally块来确保锁被正确释放。
- 最后,可以在应用程序中测试该锁以确保其工作正常。