Redis学习笔记(6)消息的订阅与发布

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/xxkalychen/article/details/78688838

数据库还能通信,真是学习了!!!

先写一个方法,订阅消息:

    @Test
    public void redis_test_message_subscribe() {
        JedisPubSub jedisPubSub = new JedisPubSub() {
            @Override
            public void onMessage(String channel, String message) {
                super.onMessage(channel, message);
                //处理回调
                System.out.println(channel + ":" + message);
            }
        };
        //订阅
        jedis.subscribe(jedisPubSub, "chat");
    }

跑起来看看:


可以看出,这个测试方法并没有立即结束,因为有个回调,正在监听消息。


加下来我们要写一个方法,来发布消息。

@Test
    public void redis_test_message_publish() {
        //发布
        jedis.publish("chat", "社会主义好");

    }
这个方法就一行,发布一条消息,消息频道和订阅的频道要一致。

把发布者启动起来:



发布者运行起来就结束了。切换到订阅者,可以看到已经收到消息。


但是,我们也发现订阅者还是没有结束,监听还在继续,他在继续等待消息。

我们尝试把消息内容改变一下,重新运行发布者。

看看结果:


订阅者收到了新的消息,而且仍然在继续监听。

个人感觉这个有利于在分布式的服务中做远程调用,感觉要比WebSocket好用一些。

猜你喜欢

转载自blog.csdn.net/xxkalychen/article/details/78688838