博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Redis Pub/Sub (Java)
阅读量:6865 次
发布时间:2019-06-26

本文共 1422 字,大约阅读时间需要 4 分钟。

hot3.png

经典的广播/订阅模式,看看Redis的java如何实现:

 

JedisPubSub是一个抽象类,一般应该继承它,实现自己的逻辑,实现抽象方法,

在抽象方法中调用自己的逻辑即可。

  • 订阅

@Test

    public void subscribe_test() {
        JedisPool pool = new JedisPool(new JedisPoolConfig(), host, port,
                timeout);

        Jedis jedis = pool.getResource();

        JedisPubSub jedisPubSub = new JedisPubSub() {
            @Override
            public void onUnsubscribe(String channel, int number) {
                System.out.println("channel: "+channel);
                System.out.println("number :"+number);
            }
            @Override
            public void onSubscribe(String channel, int number) {
                System.out.println("channel: "+channel);
                System.out.println("number :"+number);
            }
            @Override
            public void onPUnsubscribe(String arg0, int arg1) {
            }
            @Override
            public void onPSubscribe(String arg0, int arg1) {
            }
            @Override
            public void onPMessage(String arg0, String arg1, String arg2) {
            }
            @Override
            public void onMessage(String channel, String msg) {
                System.out.println("收到频道 : 【" + channel +" 】的消息 :" + msg);
            }
        };
        jedis.subscribe(jedisPubSub, new String[]{"channel1","channel2"});
        pool.returnResource(jedis);
    }

 

  • 发布
        @Test
        public void publish_test() {
            JedisPool pool = new JedisPool(new JedisPoolConfig(), host, port,
                    timeout);

        Jedis jedis = pool.getResource();

        long i = jedis.publish("channel1", "channel1的朋友们,你们好吗?亲");
        System.out.println(i+" 个订阅者接受到了 channel1 消息");
        i = jedis.publish("channel2", "你好呀,亲");
        System.out.println(i+" 个订阅者接受到了 channel2 消息");
        pool.returnResource(jedis);
    }

转载于:https://my.oschina.net/yasenagat/blog/136787

你可能感兴趣的文章
Web应用安全之Response Header里的敏感信息
查看>>
[51单片机] 四相五线减速比为1/64步进电机驱动设计
查看>>
使用HttpHanlder处理404: File not found
查看>>
矩形旋转一定角度后,四个点的新坐标
查看>>
NODE-WEBKIT教程(5)NATIVE UI API 之FRAMELESS WINDOW
查看>>
[CareerCup] 15.6 Entity Relationship Diagram 实体关系图
查看>>
Node.js与Sails~项目结构与Mvc实现
查看>>
Eclipse 分栏同时显示多个文件的内容
查看>>
bccomp比较大小注意
查看>>
js 中 typeof 的使用
查看>>
15个很好的自定义jQuery提示信息框插件( 转)
查看>>
Ansible :一个配置管理和IT自动化工具
查看>>
在Action中以Struts2的方式输出JSON数据
查看>>
【小贴士】探一探javascript中的replace
查看>>
jBPM开发入门指南(2)
查看>>
java基础面试题
查看>>
[LeetCode] UTF-8 Validation 编码验证
查看>>
并发,并行,进程,线程,同步,异步
查看>>
I.MX6 git patch
查看>>
Google Native Client入门
查看>>