码迷,mamicode.com
首页 > 其他好文 > 详细

Redis 消息队列的实现

时间:2019-10-25 20:44:03      阅读:89      评论:0      收藏:0      [点我收藏+]

标签:实现   两种   一个   消息   验证   red   提升性能   订阅   原理   

概述

Redis实现消息队列有两种形式:

  1. 广播订阅模式:基于Redis的 Pub/Sub 机制,一旦有客户端往某个key里面 publish一个消息,所有subscribe的客户端都会触发事件
  2. 集群订阅模式:基于Redis List双向+ 原子性 + BRPOP

Redis消息队列时,当Redis宕机后,消息可能会丢失(也要看持久化的策略)。如果收消息方未有重发和验证机制,Redis内的数据会出现丢失。所以,使用Redis的作为消息队列,通常是对于消息的准确性并非特别高的场景。

原理

  1. 基于Redis的 List的队列性质:从Left插入元素,从Right Pop元素
  2. 原子性:避免并发线程不安全,比如LPush的时候、BRPOP的时候
  3. BRPOP:提升性能,保证及时性又降低无效请求的次数,类似于RocketMQ的长轮询Pull消息。如果不考虑性能的话,也可直接用RPOP命令

Redis 消息队列的实现

标签:实现   两种   一个   消息   验证   red   提升性能   订阅   原理   

原文地址:https://www.cnblogs.com/wadhf/p/11739830.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!