redisson分布式锁实例
时间: 2023-08-12 13:09:39 浏览: 130
redisson实现分布式锁
您好!下面是一个使用 Redisson 实现分布式锁的示例代码:
```java
import org.redisson.Redisson;
import org.redisson.api.RLock;
import org.redisson.api.RedissonClient;
import org.redisson.config.Config;
public class RedissonLockExample {
public static void main(String[] args) {
// 创建 Redisson 配置
Config config = new Config();
config.useSingleServer().setAddress("redis://127.0.0.1:6379");
// 创建 Redisson 客户端
RedissonClient redisson = Redisson.create(config);
// 获取锁对象
RLock lock = redisson.getLock("myLock");
try {
// 尝试加锁,最多等待10秒,上锁以后10秒自动解锁
boolean isLocked = lock.tryLock(10, 10, TimeUnit.SECONDS);
if (isLocked) {
// 执行业务逻辑
System.out.println("获取到锁,开始执行业务逻辑...");
Thread.sleep(5000); // 模拟业务逻辑的执行时间
} else {
System.out.println("获取锁失败");
}
} catch (InterruptedException e) {
e.printStackTrace();
} finally {
// 释放锁
lock.unlock();
System.out.println("释放锁");
}
// 关闭 Redisson 客户端
redisson.shutdown();
}
}
```
在上述示例中,我们使用 Redisson 创建了一个 Redis 客户端,并通过 `getLock` 方法获取了一个分布式锁对象。然后使用 `tryLock` 方法尝试在最多等待10秒的时间内获取锁,上锁以后执行一段业务逻辑(这里使用 `Thread.sleep` 模拟),最后释放锁。
请注意,示例中的 Redis 地址及端口号需要根据实际情况进行修改,确保连接到正确的 Redis 服务器。
阅读全文