Redis实现发布订阅模式

简述

  • Redis可作为消息队列中间件使用,属于发布订阅模式
  • 消息队列可以实现【系统解耦】、【异步处理】、【流量削峰】
  • 订阅者先订阅某个频道,Linux命令为 【SUBSCRIBE 频道名】
  • 发布者在该频道发布消息,Linux命令为 【PUBLISH 频道名 消息内容】

Jedis实现

【订阅者】

package com.bpf.redis.pubsub;

import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPubSub;

public class Subscriber extends JedisPubSub {


    /*
    * 当接收到消息后触发该方法
    * */
    @Override
    public void onMessage(String channel, String message) {
        //业务逻辑处理
        System.out.println("频道[" + channel + "]发布了一条消息[" + message + "]");
    }

    public static void main(String[] args) {
        Jedis jedis = new Jedis("127.0.0.1",6379);

        Subscriber subscriber = new Subscriber();
        jedis.subscribe(subscriber,"channel");
    }
}

【发布者】

package com.bpf.redis.pubsub;

import redis.clients.jedis.Jedis;

public class Publisher {
    public static void main(String[] args) {
        Jedis jedis = new Jedis("127.0.0.1",6379);
        jedis.publish("channel","欢迎学习Redis!");
        jedis.close();
    }
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 这段时间行动力下降了,没有好好画,止步不前,原因是觉得不能突破,而且变懒了,但是喜爱画画的心一直不变
    我不喜欢做强迫自己的事阅读 3,671评论 6 6
  • 《拥抱自己》 仰望星空 你还是和从前一样 让我琢磨不透 像个流星 在天空划过美丽弧线 深深吸引我后 又消失在天际 ...
    晚熟的柿子阅读 1,163评论 0 0
  • 什么才是无路可退呢? 如果不是面临死亡,任何所谓的“无路可退”其实都并不是现实中的“无路”,而更多是精神和心理上的...
    吼里阅读 5,247评论 0 1
  • 最近有不少朋友在跟我倾诉一些情感类的问题,今天就在这边跟大家去讲一下关于我们情感中很容易出现的一个状况,也是我们在...
    Charis俞均阅读 2,586评论 0 0