springboot集成redis锁
时间: 2024-05-15 21:11:39 浏览: 86
Springboot+redis集成
Spring Boot 集成 Redis 锁可以使用 RedisTemplate 和 Redisson 两种方式实现。
1. RedisTemplate 方式
首先在 pom.xml 中引入 Redis 相关依赖:
```
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
```
接着在代码中实现 Redis 分布式锁:
```
@Autowired
private RedisTemplate redisTemplate;
public boolean lock(String key, String value, long expireTime) {
try {
ValueOperations<String, String> operations = redisTemplate.opsForValue();
Boolean success = operations.setIfAbsent(key, value);
if (success) {
redisTemplate.expire(key, expireTime, TimeUnit.SECONDS);
return true;
}
return false;
} catch (Exception e) {
e.printStackTrace();
}
return false;
}
public void unlock(String key) {
redisTemplate.delete(key);
}
```
2. Redisson 方式
Redisson 是基于 Redis 的分布式 Java 对象和服务。首先在 pom.xml 中引入 Redisson 相关依赖:
```
<dependency>
<groupId>org.redisson</groupId>
<artifactId>redisson-spring-boot-starter</artifactId>
<version>3.15.5</version>
</dependency>
```
接着在代码中实现 Redis 分布式锁:
```
@Autowired
private RedissonClient redissonClient;
public boolean lock(String key, String value, long expireTime) {
try {
RLock lock = redissonClient.getLock(key);
boolean success = lock.tryLock(expireTime, TimeUnit.SECONDS);
return success;
} catch (Exception e) {
e.printStackTrace();
}
return false;
}
public void unlock(String key) {
RLock lock = redissonClient.getLock(key);
lock.unlock();
}
```
阅读全文