消息队列

前言

消息队列:把要传输的数据放在队列中

功能:可以实现多个系统之间的解耦、异步、削峰/限流等

消息队列主要分为两种,这两种模式redis都支持

  • 生产者/消费者模式
  • 发布者/订阅者模式

常用的消息队列应用:Kafka、rabbitMQ、redis(不太专业)

生产者/消费者模式

  • 先生产,后消费
  • 消费者通过抢购得到
  • 可以利用list列表来实现

发布者/订阅者模式

  • 先订阅,后发布
  • 订阅者都会收到

订阅者监听频道

127.0.0.1:6379> SUBSCRIBE 89.4 106.6   #订阅者事先订阅指定的频道,之后发布的消息才能收到
Reading messages... (press Ctrl-C to quit)
1) "subscribe"
2) "89.4"
3) (integer) 1
1) "subscribe"
2) "106.6"
3) (integer) 2

#订阅支持通配符
127.0.0.1:6379> PSUBSCRIBE pattern [pattern ...]

发布者发布消息

127.0.0.1:6379> PUBLISH 89.4 hello #发布消息
(integer) 1

127.0.0.1:6379> SUBSCRIBE 89.4 106.6
Reading messages... (press Ctrl-C to quit)
1) "subscribe"
2) "89.4"
3) (integer) 1
1) "subscribe"
2) "106.6"
3) (integer) 2
1) "message" #收到消息
2) "89.4"
3) "hello"