博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
使用redis的发布订阅模式实现消息队列
阅读量:6438 次
发布时间:2019-06-23

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

配置文件

classpath:redis-context-config.properties

 

Demo演示:

消息发布端: 

package com.iwhere.testredis;import org.junit.Before;import org.junit.Test;import org.springframework.context.support.ClassPathXmlApplicationContext;import org.springframework.data.redis.core.StringRedisTemplate;/** * 测试redis做消息 * @author 231 * */public class TestRedis {    private StringRedisTemplate redisTemplate;    @Before    public void before() {        ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("classpath:redis-context.xml");        redisTemplate = context.getBean(StringRedisTemplate.class);    }        private String channel = "amap";    /**     * 测试连接     */    @Test    public void test1() {        String message = "c26c4ac0-37a3-4277-9020-bfa274c058f5|526548902996869120|Success";        redisTemplate.convertAndSend(channel, message);        System.out.println("发送完成");    }}

消息接收端

package com.iwhere.redis.sub;import java.io.UnsupportedEncodingException;import org.aspectj.bridge.Message;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.data.redis.connection.MessageListener;import org.springframework.data.redis.listener.ChannelTopic;/**  *  */public class MessageDelegateListenerImpl implements MessageListener {        @Autowired    private ChannelTopic channelTopic;        @Override    public void onMessage(org.springframework.data.redis.connection.Message message, byte[] pattern) {        byte[] bytes = message.getBody();// ""里面的参数为需要转化的编码,一般是ISO8859-1        try {            String str = new String(bytes, "utf-8");            System.out.println("I am here" + str + ": " +  channelTopic.getTopic());        } catch (UnsupportedEncodingException e) {            // TODO Auto-generated catch block            e.printStackTrace();        }        System.out.println(message);    }}

 redis的资源文件

#redis.host=dev.iwhere.comredis.host=192.168.1.110redis.port=6379redis.pass=redis密码, 没有密码就注释掉redis.default.db=0redis.timeout=100000redis.maxActive=300redis.maxIdle=100redis.maxWait=1000redis.testOnBorrow=true

 

转载地址:http://lazwo.baihongyu.com/

你可能感兴趣的文章
ios获得通讯录中联系人的所有属性
查看>>
hihoCoder1353 满减优惠
查看>>
js/jquery判断浏览器的方法总结
查看>>
【SICP练习】138 练习3.69
查看>>
【Unity】7.6 自定义输入
查看>>
有关sublime的一些使用
查看>>
数据库连接池的实现及原理
查看>>
练习、C# 结构体、冒泡排序
查看>>
Three things everyone should know to improve object retrieval
查看>>
[BZOJ 1076][SCOI2008]奖励关(期望+状压Dp)
查看>>
3.2Python的循环结构语句:
查看>>
01LaTeX学习系列之---TeX的介绍与认识
查看>>
希尔排序
查看>>
Excel Oledb设置
查看>>
51nod 正整数分组
查看>>
caioj 1066 动态规划入门(一维一边推4:护卫队)(分组型dp总结)
查看>>
环美亚二十年装修师傅分享,甲醛的八种来源
查看>>
Jquery.tmpl
查看>>
HDU 5878 I Count Two Three
查看>>
自定义View,圆形头像
查看>>