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

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

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

    @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好用一些。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值