Redis获取订阅信息后删除的JAVA实例
时间: 2023-05-31 21:06:42 浏览: 49
以下是Redis获取订阅信息后删除的JAVA实例:
```java
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPubSub;
public class RedisSubscriber extends Thread {
private final Jedis jedis;
private final String channel;
private final JedisPubSub subscriber;
public RedisSubscriber(Jedis jedis, String channel, JedisPubSub subscriber) {
this.jedis = jedis;
this.channel = channel;
this.subscriber = subscriber;
}
@Override
public void run() {
try {
jedis.subscribe(subscriber, channel);
} catch (Exception e) {
System.out.println("Exception occurred: " + e.getMessage());
} finally {
jedis.quit();
}
}
public void unsubscribe() {
subscriber.unsubscribe();
}
}
public class Main {
public static void main(String[] args) {
Jedis jedis = new Jedis("localhost");
JedisPubSub subscriber = new JedisPubSub() {
@Override
public void onMessage(String channel, String message) {
System.out.println("Received message: " + message);
}
};
RedisSubscriber redisSubscriber = new RedisSubscriber(jedis, "test", subscriber);
redisSubscriber.start();
// Wait for a while
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
e.printStackTrace();
}
redisSubscriber.unsubscribe();
}
}
```
在上述示例中,我们定义了一个RedisSubscriber类,它继承了Thread类,用于订阅Redis频道。在构造函数中,我们传入了Jedis实例、频道名称和JedisPubSub实例。在run()方法中,我们调用了Jedis实例的subscribe()方法来启动订阅。在unsubscribe()方法中,我们调用了JedisPubSub实例的unsubscribe()方法来停止订阅。
在Main类中,我们创建了一个Jedis实例和一个JedisPubSub实例,并将它们传递给RedisSubscriber类的构造函数来创建一个订阅者实例。我们启动订阅者线程,等待一段时间后调用unsubscribe()方法来停止订阅。