野生程序员 野生程序员

               流年,长短皆逝 浮生,往来皆客。  

目录
Redis发布订阅
/  

Redis发布订阅

Redis发布订阅

Redis发布订阅(pub/sub)是一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息。

Redis客户端可以订阅任意数量的频道。

订阅/发布消息图

  1. 消息发送者
  2. 频道
  3. 消息订阅者

image.png

下图展示了频道channel1,以及订阅这个频道的三个客户端client2、client5、client1自间的关系

image.png

当有新消息通过PUBLISH命令发送给频道channel1时,这个消息就会被发送给订阅他的三个客户端

image.png

这些命令被广泛应用于构建即时通县应用,比如网络聊天时和实时广播,实时提醒等等(我用这个做过聊天室)

image.png

测试

订阅端:

127.0.0.1:6379> psubscribe yeshengchengxuyuan #订阅一个频道
Reading messages... (press Ctrl-C to quit)
1) "psubscribe"
2) "yeshengchengxuyuan"
3) (integer) 1
#等待推送的信息
1) "pmessage"
2) "yeshengchengxuyuan" #哪个频道的消息
3) "Test" #消息的具体内容

发送端:

127.0.0.1:6379> publish yeshengchengxuyuan Test #发布者发布消息到频道!
(integer) 1
127.0.0.1:6379> 

原理

image.png

使用场景

  1. 实时消息系统
  2. 实时聊天系统(频道当做聊天室)
  3. 订阅、关注系统都是可以的

其他稍微复杂的场景那就需要用到消息队列了!


标题:Redis发布订阅
作者:野生程序员
地址:http://www.yscxy.net/articles/2020/10/20/1603182571407.html