一、Redis的消息队列
- list结构: 基于List结构模拟MQ
- PubSub: 基本的 P2P 模式的 MQ模型
- Stream: 比较完善的MQ模型
1、List模拟MQ: 通过LPUSH推送消息,RPOP接收消息,若想要阻塞队列的效果,可以通过BLPUSH,BRPOP指令进行。
(1)优点:
- 利用Redis存储,内存上限高
- 基于Redis的持久化机制,保证数据安全
- 可以满足消息有序性
(2)缺点:
- 无法避免消息丢失
- 只支持单消费者
(3)命令行形式进行模拟
#存储商铺id, 优惠券id,用户id,并设置 3s 的TTL,避免等待时间过长
BLPUSH task:taskid voulerid uid
EXPIRE task:taskid 3
#取消息
BRPOP task:taskid
2、基于PubSub的消息队列: 一种Redis2.0版本引入的消息传递模型,