redis 消息队列

原创
2020/10/12 12:31
阅读数 115

RedisMessage.java

 


import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.connection.Message;
import org.springframework.data.redis.connection.MessageListener;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.serializer.RedisSerializer;
import org.springframework.stereotype.Component;

/**
 * 接收消息的实体类
 */
@Component
public class RedisMessage implements MessageListener {
    @Autowired
    private RedisTemplate<Object, Object> redisTemplate;

    @Override
    public void onMessage(Message message, byte[] pattern) {
        RedisSerializer<String> serializer = redisTemplate.getStringSerializer();
        String msg = serializer.deserialize(message.getBody());
        String channel = new String(message.getChannel());
        System.out.println(channel+":接收到的消息是:" + msg);
    }
}

 

 

controller 里 测试:

 


@Controller
@ControllerAdvice
@RequestMapping("/api")
public class HelloController extends BaseController {
    @Autowired
    private ITransportTrackService transportTrackService;
    @SuppressWarnings("unused")
    @Autowired
    private RedisTemplate<String, Object> redisTemplate;

// redis 消息队列处理
    @ResponseBody
    @RequestMapping(value = "/sayHello3")
    public String sayHello3() throws IOException {

        // 发送消息到redis队列 通道为msg 接收在project.message.RedisMessage.java 里面
        redisTemplate.convertAndSend("msg", "哈哈哈,redis 订阅信息");
        // 发送消息到redis队列 通道为msg 接收在project.message.RedisMessage.java 里面
        String channel = "oms";
        String msg = "hello";
        redisTemplate.convertAndSend(channel, msg);
        System.out.println(channel + msg);
        // String a = "abc";
        // int b = Integer.parseInt(a);
        // redisTemplate = applicationContext.getBean(RedisTemplate.class);
        // redisTemplate.boundValueOps("name").set("itcast");
        // String str = redisTemplate.boundValueOps("name").get().toString();
        // System.out.println(str);
        return "test";

    }

 

 

yml boot文件设置:

  redis:
    database: 0
    host: 127.0.0.0.1
    port: 6379
    password: Live    # 密码(默认为空)
    timeout: 6000  # 连接超时时长(毫秒)
    jedis:
      pool:
        max-active: -1  # 连接池最大连接数(使用负值表示没有限制)
        max-wait: -1ms    # 连接池最大阻塞等待时间(使用负值表示没有限制)
        max-idle: 10      # 连接池中的最大空闲连接
        min-idle: 5       # 连接池中的最小空闲连接
  

展开阅读全文
加载中
点击引领话题📣 发布并加入讨论🔥
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部