redis订阅发布

redis发布订阅原理

redis发布订阅(pub/sub)是一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息。就如同微信,微博的关注系统那样。redis客户端可以订阅任意数量的频道。
订阅/发布消息图:

如果有三个客户端,分别是:client1,client2,client5,订阅的频道为channel1,那么它们的关系如下:

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

redis发布订阅命令

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

测试

  1. 订阅端
127.0.0.1:6379> subscribe moon #订阅一个频道
Reading messages... (press Ctrl-C to quit)
1) "subscribe"
2) "moon"
3) (integer) 1 # 从这里网上均是默认打印信息,等待读取推送的信息
1) "message" # 消息标签
2) "moon" # 频道名称
3) "hello moon" #频道内容
  1. 发布端
127.0.0.1:6379> publish moon "hello moon" # 发布者发送消息到频道
(integer) 1
127.0.0.1:6379> 

注意:先启动发布端进行发布,然后再启动订阅端订阅,这里并不会有数据产生,并且在订阅端直接ctrl+c退出,会直接退出整个redis-cli客户端

  1. 发布端

  2. 订阅端

原理


使用场景

  1. 实时消息系统
  2. 实时聊天(频道当作聊天室,将消息回显给所有人即可)
  3. 订阅,关注系统
    稍微复杂的场景,就是用消息队列去做了
posted @ 2022-07-26 23:33  影梦无痕  阅读(159)  评论(0编辑  收藏  举报