Redis發(fā)布訂閱傳對象[消息隊列](基于Redisson)

定義一個基本類(必須繼承自Serializable,否則無效)

public class Car  implements Serializable {
private static final long serialVersionUID = -1L;

private double price;
private String colour;

public Car(double price, String colour){
    this.price = price;
    this.colour = colour;
}

public double getPrice() {
    return price;
}
public void setPrice(double price) {
    this.price = price;
}
public String getColour() {
    return colour;
}
public void setColour(String colour) {
    this.colour = colour;
}

@Override
public String toString(){
    return colour +"car costs $"+price;
}

}

1.訂閱消息:

public static void main(String[] args) {
    RedissonClient redisson = null;
    try{
        Config config = new Config();
        config.useSingleServer().setAddress("127.0.0.1:6379");

        redisson = Redisson.create(config);

        RTopic topic = redisson.getTopic("dw",new SerializationCodec());
        topic.addListener(Car.class, new MessageListener<Car>() {
            @Override
            public void onMessage(CharSequence charSequence, Car car) {
                System.out.println("onMessage:"+charSequence+"; Thread: "+Thread.currentThread().toString());
                System.out.println(car.getColour()+" price : "+car.getPrice());
            }
        });


    }
    catch (Exception ex){
        System.out.println(ex.getMessage());
    }
    finally {

    }
}

2.發(fā)布消息:

public static void main(String[] args) {
    RedissonClient redisson = null;
    try{
        Config config = new Config();
        config.useSingleServer().setAddress("127.0.0.1:6379");

        redisson = Redisson.create(config);

        RTopic topic1 = redisson.getTopic("dw", new SerializationCodec());
        topic1.publish(new Car(120000,"white"));
        topic1.publish(new Car(100000,"black"));
    }
    catch (Exception ex){
        System.out.println(ex.getMessage());
    }
    finally {
        redisson.shutdown();
    }
}

先運(yùn)行訂閱消息的main,再運(yùn)行發(fā)布消息的main。
然后看訂閱消息的控制臺,顯示:


image.png

看運(yùn)行結(jié)果,每次有新消息過來,都會開個新線程去跑的,這點(diǎn)要注意。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Java繼承關(guān)系初始化順序 父類的靜態(tài)變量-->父類的靜態(tài)代碼塊-->子類的靜態(tài)變量-->子類的靜態(tài)代碼快-->父...
    第六象限閱讀 2,261評論 0 9
  • 廢話不多說,自己進(jìn)入今天的主題 1、面向?qū)ο蟮奶卣饔心男┓矫妫?答:面向?qū)ο蟮奶卣髦饕幸韵聨讉€方面: - 抽象:...
    傳奇內(nèi)服號閱讀 2,538評論 1 31
  • 類加載機(jī)制 如下圖所示,JVM類加載機(jī)制分為五個部分:加載,驗(yàn)證,準(zhǔn)備,解析,初始化,下面我們就分別來看一下這五個...
    舉頭望明月泣閱讀 1,258評論 0 0
  • JVM虛擬機(jī)的構(gòu)成 Java Stack(虛擬機(jī)棧) Heap(堆):共享數(shù)據(jù)。 Method Area(方法區(qū))...
    hcq0514閱讀 596評論 0 0
  • 沒有丑女人,只有懶女人,盡可能把自己打扮得:干凈、精致、時尚,女人可以長得不漂亮,但絕對要活得漂亮??!
    叁爺閱讀 256評論 0 0

友情鏈接更多精彩內(nèi)容