博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
redis的消息订阅/发布总结
阅读量:4041 次
发布时间:2019-05-24

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

本地测试redis的pub/sub功能,本地主要是redis的缺陷,服务重启时会丢失信息的问题。发现redis的pub/sub功能还是比较薄弱,对于大量消息队列来说,不太合适,舍弃掉

import redis.clients.jedis.JedisPubSub;public class RedisMsgPubSubListener extends JedisPubSub {    @Override    public void unsubscribe() {        super.unsubscribe();    }    @Override    public void unsubscribe(String... channels) {        super.unsubscribe(channels);    }    @Override    public void subscribe(String... channels) {        super.subscribe(channels);    }    @Override    public void psubscribe(String... patterns) {        super.psubscribe(patterns);    }    @Override    public void punsubscribe() {        super.punsubscribe();    }    @Override    public void punsubscribe(String... patterns) {        super.punsubscribe(patterns);    }    @Override    public void onMessage(String channel, String message) {        System.out.println("channel:" + channel + "    receives message :" + message);//        this.unsubscribe();    }    @Override    public void onPMessage(String pattern, String channel, String message) {    	 System.out.println("onPMessage==="+"channel:" + channel + "   pub message :" + message+"  pattern:"+pattern);    }    @Override    public void onSubscribe(String channel, int subscribedChannels) {        System.out.println("channel:" + channel + "is been subscribed:" + subscribedChannels);    }    @Override    public void onPUnsubscribe(String pattern, int subscribedChannels) {    	System.out.println("pattern:" + pattern + "is been unPSubscribeed:" + subscribedChannels);    }    @Override    public void onPSubscribe(String pattern, int subscribedChannels) {    	System.out.println("pattern:" + pattern + "is been PSubscribeed:" + subscribedChannels);    }    @Override    public void onUnsubscribe(String channel, int subscribedChannels) {        System.out.println("channel:" + channel + "is been unsubscribed:" + subscribedChannels);    }}

import org.junit.Test;import redis.clients.jedis.Jedis;public class TestPublish {		@Test    public void testPublish() throws Exception{        Jedis jedis = new Jedis("api.dev.lexue.com",16479);        jedis.auth("lexue@nosql");        jedis.publish("redisChatTest", "我是天才");        Thread.sleep(5000);        jedis.publish("redisChatTest", "我牛逼");        Thread.sleep(5000);        jedis.publish("redisChatTest", "哈哈");    }}
import org.junit.Test;import redis.clients.jedis.Jedis;public class TestSubscribe {	    public static void main(String args[]) throws Exception{		Jedis jedis = new Jedis("api.dev.lexue.com",16479);        jedis.auth("lexue@nosql");        RedisMsgPubSubListener listener = new RedisMsgPubSubListener();        jedis.subscribe(listener, "redisChatTest");        System.out.println("test sub");        //other code           }}
@RequestMapping(value = "/testPublish")    public void testPublish(HttpServletRequest request, HttpServletResponse response)throws Exception{        response.setContentType("text/javascript");        Jedis jedis = new Jedis("api.dev.lexue.com",16479);        jedis.auth("lexue@nosql");        jedis.publish("redisChatTest", "1111111");        jedis.publish("redisChatTest1", "咦咦咦咦咦");        LOG.info("testPublish  1");        Thread.sleep(5000);        jedis.publish("redisChatTest", "2222222");        jedis.publish("redisChatTest1", "鹅鹅鹅鹅鹅鹅");        LOG.info("testPublish  2");        Thread.sleep(5000);        jedis.publish("redisChatTest", "33333333");        jedis.publish("redisChatTest1", "哈哈哈哈哈哈");        LOG.info("testPublish  3");    }         @RequestMapping(value = "/testSubscribe1")    public void testSubscribe1(HttpServletRequest request, HttpServletResponse response)throws Exception{        response.setContentType("text/javascript");        Jedis jedis = new Jedis("api.dev.lexue.com",16479);        jedis.auth("lexue@nosql");        RedisMsgPubSubListener listener = new RedisMsgPubSubListener();        jedis.psubscribe(listener, "redisChatTest*");//        jedis.subscribe(listener, "redisChatTest1");        LOG.info("testSubscribe1");    }        @RequestMapping(value = "/testSubscribe2")    public void testSubscribe2(HttpServletRequest request, HttpServletResponse response)throws Exception{        response.setContentType("text/javascript");        Jedis jedis = new Jedis("api.dev.lexue.com",16479);        jedis.auth("lexue@nosql");        RedisMsgPubSubListener listener = new RedisMsgPubSubListener();        jedis.subscribe(listener, "redisChatTest1");        LOG.info("testSubscribe2");    }
参考地址:http://blog.csdn.net/u011734144/article/details/51782085

你可能感兴趣的文章
1036. Boys vs Girls (25)
查看>>
1094. The Largest Generation (25)
查看>>
1056. Mice and Rice (25)
查看>>
1030. Travel Plan (30)寻找最短路径
查看>>
1053. Path of Equal Weight (30)
查看>>
1073. Scientific Notation (20)
查看>>
1037. Magic Coupon (25)
查看>>
1040. Longest Symmetric String (25) 最长回文子串
查看>>
1090. Highest Price in Supply Chain (25)
查看>>
1063. Set Similarity (25) 并查集
查看>>
1062. Talent and Virtue (25) 排序
查看>>
1093. Count PAT's (25)
查看>>
1070. Mooncake (25)
查看>>
1076. Forwards on Weibo (30)
查看>>
1079. Total Sales of Supply Chain (25)
查看>>
1025. PAT Ranking (25)
查看>>
1048. Find Coins (25)
查看>>
1049. Counting Ones (30)计算个位数出现次数.
查看>>
1059. Prime Factors (25)
查看>>
1089. Insert or Merge (25)
查看>>