主要注意点,接收方和发送方必须使用不同的jedis对象。
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPubSub;
/**
* @author : gaodaliang
* @discription :
* @date : created in 2018/10/29,14:47
* @modified :
**/
public class Main_redisTest {
static Jedis pub = new Jedis("10.5.144.169", 6379, 0);
static Jedis sub = new Jedis("10.5.144.169", 6379, 0);
static {
pub.auth("ume@redis");
sub.auth("ume@redis");
}
static Thread t1;
public static void main(String[] args) {
t1 = new Thread(new Runnable() {
@Override
public void run() {
SeamlessReceiver redisGetData = new SeamlessReceiver();
redisGetData.proceed(sub.getClient(), "channel_test");
}
});
t1.start();
System.out.println("==========已经发布消息===================");
for (int i = 0; i < 3; i++) {
long ret = pub.publish("channel_test", "A123"+String.valueOf(i));
System.out.println(ret);
}
try {
Thread.sleep(1000);
}catch (Exception e){
e.printStackTrace();
}
}
static class SeamlessReceiver extends JedisPubSub {
@Override
public void onMessage(String s, String s1) {
System.out.println(s+":"+s1);
}
@Override
public void onPMessage(String s, String s1, String s2) {
}
@Override
public void onSubscribe(String s, int i) {
}
@Override
public void onUnsubscribe(String s, int i) {
}
@Override
public void onPUnsubscribe(String s, int i) {
}
@Override
public void onPSubscribe(String s, int i) {
}
}
}