Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么redis中的pub-sub不能与其他命令一起使用?_Redis - Fatal编程技术网

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

为什么redis中的pub-sub不能与其他命令一起使用?,redis,Redis,我正在阅读,我看到一条警告,指出Redis中的发布/订阅用户不应发出其他命令: 订阅一个或多个频道的客户端不应发出命令, 尽管它可以订阅和取消订阅其他频道 我有两个问题: 为什么会有这样的限制 在本段的范围内,什么是客户?整个过程?Redis连接?一个完整的Redis实例?或者,一般来说,发布命令和订阅频道是一个坏主意,而警告适用于我能想到的任何范围 在本例中,客户端是连接到Redis的实例。一个应用程序可以有多个客户机,每个客户机都有不同的职责,或者作为向应用程序提供更高程度并行性的一种方式

我正在阅读,我看到一条警告,指出Redis中的发布/订阅用户不应发出其他命令:

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

我有两个问题:

  • 为什么会有这样的限制
  • 在本段的范围内,什么是客户?整个过程?Redis连接?一个完整的Redis实例?或者,一般来说,发布命令和订阅频道是一个坏主意,而警告适用于我能想到的任何范围

在本例中,客户端是连接到Redis的实例。一个应用程序可以有多个客户机,每个客户机都有不同的职责,或者作为向应用程序提供更高程度并行性的一种方式

然而,他们在这里建议的是,您使用一个单独的客户端(想想“连接”)来处理传入的订阅消息,并作为其唯一责任对这些消息作出反应。建议不要使用此连接拨打电话的原因是,当客户端正在等待来自已订阅频道的传入消息时,客户端处于阻塞状态


在等待阻止呼叫的响应时,尝试对给定客户端进行呼叫将不起作用。

谢谢!这听起来很合理。为了完整起见,订户连接只允许使用以下命令:
SUBSCRIBE
PSUBSCRIBE
UNSUBSCRIBE
PUNSUBSCRIBE
PING
QUIT
(PR:;)