1.使用maven导入相关的jar包
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>2.7.2</version>
</dependency>
2. 发布者
package com.tbs.redis;
import java.io.ByteArrayOutputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectOutputStream;
import com.tbs.common.entity.Order;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPubSub;
public class RedisPublish {
public static void main(String[] args) throws IOException{
System.out.println("发布者 ");
Jedis jRedis = new Jedis("localhost");
jRedis.publish("JRedisChat","my name is chenLong");
// jRedis.publish("JRedisChat1","Hello chenLong!");
Order o=new Order();// 一个实体类..
ByteArrayOutputStream byt=new ByteArrayOutputStream();
ObjectOutputStream obj=new ObjectOutputStream(byt);
obj.writeObject(o);
byte[] bytes=byt.toByteArray();
// 可写入byte和字符串.
jRedis.publish("JRedisChat1".getBytes(),bytes);
}
}
package com.tbs.redis;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPubSub;
public class RedisSub1 {
public static void main(String[] args){
System.out.println("订阅者..1");
final Jedis jRedis = new Jedis("localhost");
JedisPubSub jedisPubSub=new JedisPubSub() {
@Override
public void onMessage(String channel, String message) {
// 执行订阅消息
super.onMessage(channel, message);
//终止订阅
super.unsubscribe();
System.out.println(message);
}
};
jRedis.subscribe(jedisPubSub,"JRedisChat1");
}
}
4.先运行订阅着,再运行发布者,就会看到订阅者会打印出发布者的内容.
感觉还是mq好用一点.