发布与订阅(pub/sub)

发布与订阅(又称pub/sub)的特点:

  • 订阅者(listener)负责订阅频道(channel)
  • 发送者(publisher)负责向频道发送二进制字符串消息(binary string message)
  • 每当有消息被发送至给定频道时,频道所有订阅者丢回收到消息

1.操作命令

1.1 基础操作命令

命令 用例 描述
SUBSCRIBE SUBSCRIBE channel [channel ...] 订阅给定的一个或多个频道
UNSUBSCRIBE UNSUBSCRIBE [channel [channel ...]] 退订给定的一个或多个频道,如果执行时没有给定任何频道,那么退订所有频道
PUBLISH PUBLISH channel message 向给定频道发送消息
PSUBSCRIBE PSUBSCRIBE pattern [pattern ...] 订阅与给定模式相匹配的所有渠道
PUNSUBSCRIBE PUNSUBSCRIBE [pattern [pattern ...]] 退订给定的模式,如果执行时没有给定任何模式,退订所有

2 发布订阅的弊端

  • 原因1:redis的稳定性
    1. 对于旧版redis,客户端订阅了某些频道
    2. 但是读取消息的速度却不够快的话,那么不断积压的消息就会使得redis输出缓冲区的体积变得越打越大
    3. 导致redis速度变慢,甚至奔溃,也可能导致redis 被系统杀死
    4. 新版的不会出现这种问题,会自动断开不符合client-output-buffer-limit pubsub 配置选项要求的订阅客户端
  • 原因2:数据传输的可靠性
    1. 任何网络系统在执行操作时都可能会遇上短信情况
    2. 客户端将丢失在断线期间的所有消息

results matching ""

    No results matching ""