PUBSUB CHANNELS命令是否阻止Redis服务器?

时间:2016-07-15 09:30:25

标签: redis publish-subscribe

我们知道KEYS命令阻止Redis服务器并且需要使用*SCAN命令。

据我所知,Redis服务器可以处理很多pubsub连接。那么,如果我在这样的服务器上调用PUBSUB CHANNELS命令,它可以在执行此命令时处理pubsub连接还是处理其他命令?

1 个答案:

答案 0 :(得分:0)

Redis是单线程的。它可以有任意数量的客户端,但正在执行的命令是单线程(逐个)。

在PUBSUB中,您订阅了一个客户端,该客户端将保持与服务器的连接。

当您发布消息时,它会被传递到已订阅的所有频道,因此基本上它只是一个呼叫,它会发布到该呼叫本身的所有频道。因此,如果您有多个客户(比如一百万)订阅单个频道,那么发布到所有这些客户端需要一些时间,然后是阻止。另请注意,阻止只会在发布操作期间发生。

希望这能回答你的问题。