redis的消息队列
redis的消息队列
消息队列主要分两种,redis都支持:
- 生产者消费者模式
- 发布者订阅者模式
生产者消费者模式:
在生产者消费者(Producer/Consumer)模式下,上层应用接收到的外部请求后开始处理其当前步骤的操作,在执行完成后将已经完成的操作发送至指定的频道(channel)当中,并由其下层的应用监听该频道并继续下一步的操作,如果其处理完成后没有下一步的操作就直接返回数据给外部请求,如果还有下一步的操作就再将任务发布到另外一个频道,由另外一个消费者继续监听和处理
原理:
队列当中的消息由不同的生产者写入,也会有不同的消费者取出进行消费处理,但是一个消息一定是只能被取出一次也就是被消费一次
此模式在分布式业务架构中非常常用,比较常用的软件还有RabbitMQ、Kafka、RocketMQ、ActiveMQ等

使用生产者消费者模式:
生产消息:
lpush 队列名 消息1 消息2 ...
消费消息:
rpop 队列名
查看队列消息:
lrange 队列名 起始下标 结束下标
例: 生产消费
#生产消息
LPUSH c1 msg1
LPUSH c1 msg2 msg3 msg4 msg5
lrange c1 0 6
#消费消息
rpop c1

发布者订阅模式:
原理:
在发布者订阅者模式下,发布者将消息发布到指定的channel里面,凡是监听该channel的消费者都会收到同样的一份消息,这种模式类似于是收音机的广播模式,即凡是收听某个频道的听众都会收到主持人发布的相同的消息内容
需要先订阅后发布,因为先发布了,再订阅时,订阅者不能再看了之前发的消息,也就是看不到历史消息
- Subscriber:订阅者
- Publisher:发布者
- Channel:频道

应用场景:
- 此模式常用语群聊天、群通知、群公告等场景
使用发布者订阅模式:
订阅频道:
subscribe 频道1 频道2 ...
发布消息:
publish 频道 消息
例: 订阅发布
#订阅频道
subscribe 222
#发布消息
publish 222 test



浙公网安备 33010602011771号