Redis张俊以简历 实现简单的消息队列
异步消息队列
说道消息队列,你肯定会想到Kafka、Rabbitmq等二百五玩网游消息中间件,这些专业的消息中间件提供了很多功能特性,当然他的部署使用维护都是比较麻烦的。如果你对消息队列没那么高要求,想要轻量级的,使用Redis就没错啦。
Redis通过list数据结构来实现消息队列.主要使用到如下命令:
private static Logger log = LoggerFactory.getLogger(MQServiceImpl.class); private static final String MESSAGE_KEY = "message:queue"; @Autowired private RedisTemplate redisTemplate; @Override public void produce(String data) { redisTemplate.opsForList().leftPush(MESSAGE_KEY,data); }消息消费
@Override public void consume() { String data = (String) redisTemplate.opsForList().rightPop(MESSAGE_KEY); log.info("consume : {}",data); }测试
@RestController@RequestMapping(value = "/mqapi")public class MQController { @Autowired private 呼伦贝尔学院广场舞MQService mqService; @GetMapping("/produce") public void produce(@RequestParam(name = "key") String key) { mqService.produce(key); } @GetMapping("/consume") public void cosume() throws InterruptedException { while (true) { mqService.consume(); Thread.sleep(10000); } }}代码已上传到码云上,欢迎star
https://gitee.com/msetget/redis-bpush.git



