redis支持发布/订阅的消息队列机制,jedis提供了java访问redis的客户端,本文将描述如何用jedis实现简单的消息队列,并传输对象。
redis支持发布、订阅的功能,基本的命令有publish、subscribe等。在jedis中,有对应的java方法,并且只能发布字符串消息。为了传输对象,需要将对象进行序列化,并封装成字符串进行处理。将对象序列化后,只能成为字节流,如何封装成字符串是一个难点,具体可参考下面的代码。
实现三个类,一个对应publish、一个对应subscribe、一个对应要传递的对象实体类。
实体类:
public class Bean implements Serializable {//需要实现序列化接口
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
publish类:
public class TestPub {
public static void main(String[] args) {
Jedis jedis = new Jedis("127.0.0.1");
try {
Bean bean = new Bean();
bean.setName("test");
//使用ObjectOutputStream和ByteArrayOutputStream将对象转换成字节流
ByteArrayOutputStream b