java redis分布式锁 demo
时间: 2023-02-08 12:16:58 浏览: 49
以下是一个简单的Java代码示例,该代码使用Redis实现分布式锁:
```java
import redis.clients.jedis.Jedis;
public class RedisDistributedLock {
private Jedis jedis;
public RedisDistributedLock(Jedis jedis) {
this.jedis = jedis;
}
public boolean lock(String key) {
// 使用setnx命令实现加锁
// 如果返回值为1,说明获取锁成功
return jedis.setnx(key, "1") == 1;
}
public void unlock(String key) {
// 释放锁只需要删除key
jedis.del(key);
}
}
```
使用方法:
```java
Jedis jedis = new Jedis("localhost");
RedisDistributedLock lock = new RedisDistributedLock(jedis);
if (lock.lock("my-key")) {
try {
// 获取锁成功,执行业务逻辑
} finally {
lock.unlock("my-key");
}
} else {
// 获取锁失败,执行其他操作
}
```
这只是一个简单的示例,实际应用中可能需要考虑超时释放锁、防止死锁等因素。
阅读全文