Redis分布式锁怎么用java实现
时间: 2023-07-18 12:03:53 浏览: 161
redis 分布式锁java 实现
Redis分布式锁可以使用Java语言通过Redisson框架来实现。下面给出一个简单的示例代码:
```java
import org.redisson.Redisson;
import org.redisson.api.RLock;
import org.redisson.api.RedissonClient;
import org.redisson.config.Config;
public class RedissonLockDemo {
public static void main(String[] args) {
Config config = new Config();
config.useSingleServer().setAddress("redis://127.0.0.1:6379");
RedissonClient redisson = Redisson.create(config);
RLock lock = redisson.getLock("myLock");
try {
// 尝试获取锁,最多等待3秒
if (lock.tryLock(3, TimeUnit.SECONDS)) {
// 成功获取到锁,执行业务逻辑
System.out.println("获取到锁,执行业务逻辑");
} else {
// 获取锁失败
System.out.println("获取锁失败");
}
} catch (InterruptedException e) {
e.printStackTrace();
} finally {
lock.unlock();
redisson.shutdown();
}
}
}
```
以上代码创建了一个RedissonClient对象,然后通过这个对象获取一个名为"myLock"的分布式锁。在业务逻辑执行前,调用tryLock方法尝试获取锁,如果获取到了锁则执行业务逻辑,否则直接返回。执行完业务逻辑后释放锁即可。
需要注意的是,使用分布式锁时一定要确保获取锁和释放锁的操作都是原子的,否则会出现死锁等问题。
阅读全文