java 实现redis可靠的queue 代码
时间: 2023-08-21 15:06:29 浏览: 160
以下是一个简单的 Java 实现 Redis 可靠队列的代码示例,使用 Jedis 客户端:
```java
import redis.clients.jedis.Jedis;
import redis.clients.jedis.exceptions.JedisConnectionException;
import java.util.List;
public class RedisQueue {
private final Jedis jedis;
private final String queueName;
public RedisQueue(String host, int port, String password, String queueName) {
this.jedis = new Jedis(host, port);
this.jedis.auth(password);
this.queueName = queueName;
}
public void push(String value) {
jedis.lpush(queueName, value);
}
public String pop() {
try {
List<String> result = jedis.brpop(0, queueName);
return result.get(1);
} catch (JedisConnectionException e) {
return null;
}
}
public void delete(String value) {
jedis.lrem(queueName, 0, value);
}
public void close() {
jedis.close();
}
}
```
以上代码中,push() 方法向队列中添加元素,pop() 方法从队列中取出元素,delete() 方法删除已经处理过的元素,close() 方法关闭 Redis 数据库连接。在 pop() 方法中,使用了 brpop() 命令阻塞等待队列中有新元素出现,使用了 catch 块捕获 JedisConnectionException 异常,以处理 Redis 连接断开的情况。此外,如果需要实现分布式锁,可以使用 Redisson 等分布式锁框架。
阅读全文