redis主题topic订阅形式

518 阅读1分钟

本文使用的是redis的java包Redisson如果不清楚怎么配的请查看

blog.csdn.net/zhaohan___/…

  /**
     * 测试redis主题发布消息
     */
    @GetMapping("/topic/put")
    public void putTopic(){
        try{
            RTopic topic1 = redisson.getTopic("topic", new SerializationCodec());
            topic1.publish("测试主题消息发布1");
            topic1.publish("测试主题消息发布1");
        }
        catch (Exception ex){
            System.out.println(ex.getMessage());
        }
        finally {
            redisson.shutdown();
        }
    };

这里偷懒使用了spring bean的 形式让接收topic消息的程序运行

  /**
     * 主题订阅的方式
     * @param redisson
     * @return
     */
    @Bean
    public String redissonTopic(RedissonClient redisson){
        try{
            RTopic topic = redisson.getTopic("topic",new SerializationCodec());
            topic.addListener(new MessageListener<String>() {
                @Override
                public void onMessage(String s, String str) {
                    System.out.println("onMessage:"+s+"; Thread: "+Thread.currentThread().toString());
                }
            });
        }
        catch (Exception ex){
            System.out.println(ex.getMessage());
        }finally {

        }
        return "";
    }

注意

topic形式发消息如果响发送class类需要序列化!

参考文章

github.com/redisson/re…
blog.csdn.net/CharlesYooS…