为什么pub in sub in redis不能与其他命令一起使用?

时间:2015-11-29 12:21:20

标签: redis

我正在阅读here,我看到一条警告,指出Redis中的PUB / SUB订阅者不应发出其他命令:

  

订阅一个或多个频道的客户端不应发出命令,   虽然它可以订阅和取消订阅其他渠道。

我有两个问题:

  • 为什么会出现这种限制?
  • 对于段落的范围,客户是什么?整个过程? Redis连接?一个完整的Redis实例?或者一般来说,发布命令和订阅频道是一个坏主意,而且我可以想到的每个范围和任何范围的警告都会出现吗?

1 个答案:

答案 0 :(得分:5)

在这种情况下,客户端是与Redis连接的实例。应用程序可能有多个客户端,每个客户端具有不同的职责或作为向应用程序提供更高程度的并行性的方法。

但是,他们在此建议您使用个人客户端(想想“连接”)来处理您收到的订阅消息,并对这些消息做出全面的责任。建议不要使用此连接进行呼叫的原因是因为在等待来自订阅频道的传入消息时,客户端处于阻塞状态。

在等待来自阻止呼叫的响应时,尝试在给定客户端上进行呼叫将无法正常工作。