【问题标题】:Is PUBSUB CHANNELS command blocking Redis server?PUBSUB CHANNELS 命令是否阻塞了 Redis 服务器?
【发布时间】:2016-07-15 09:30:24
【问题描述】:

我们知道KEYS命令会阻塞Redis服务器,需要改用*SCAN命令。

据我了解,Redis 服务器可以处理大量 pubsub 连接。那么,如果我在这样的服务器上调用PUBSUB CHANNELS 命令,它可以在执行此命令期间处理 pubsub 连接或处理其他命令吗?

【问题讨论】:

    标签: redis publish-subscribe


    【解决方案1】:

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

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

    当您发布一条消息时,它会传递到所有订阅的频道,所以基本上它是一个单独的调用,它会发布到该调用本身的所有频道。因此,如果您有多个客户(例如一百万)订阅单个频道,则需要一些时间才能发布到所有这些客户,那么是的,它是阻塞的。另请注意,阻塞只会在发布操作期间发生。

    希望这能回答您的问题。

    【讨论】:

      猜你喜欢
      • 2016-07-05
      • 2011-12-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多