当前位置: 移动技术网 > IT编程>开发语言>PHP > Redis 消息队列的实现

Redis 消息队列的实现

2019年10月26日  | 移动技术网IT编程  | 我要评论
概述 Redis实现消息队列有两种形式: Redis消息队列时,当Redis宕机后,消息可能会丢失(也要看持久化的策略)。如果收消息方未有重发和验证机制,Redis内的数据会出现丢失。所以,使用Redis的作为消息队列,通常是对于消息的准确性并非特别高的场景。 原理 ...

概述

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命令

如您对本文有疑问或者有任何想说的,请 点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
移动技术网