0
我們知道,KEYS
命令塊Redis的服務器,並需要使用*SCAN
命令來代替。PUBSUB CHANNELS命令是否阻止Redis服務器?
據我瞭解的Redis服務器可以處理大量的發佈 - 訂閱連接。那麼,如果我在這樣的服務器上調用PUBSUB CHANNELS
命令,它可以在執行此命令期間處理pubsub連接還是處理其他命令?
我們知道,KEYS
命令塊Redis的服務器,並需要使用*SCAN
命令來代替。PUBSUB CHANNELS命令是否阻止Redis服務器?
據我瞭解的Redis服務器可以處理大量的發佈 - 訂閱連接。那麼,如果我在這樣的服務器上調用PUBSUB CHANNELS
命令,它可以在執行此命令期間處理pubsub連接還是處理其他命令?
Redis的是單線程。它可以有任意數量的客戶端,但執行的命令是單線程的(一個接一個)。
在PubSub的您訂閱到客戶端,這將保持與服務器的連接。
當您發佈它被傳遞到所有已訂閱的所有頻道的消息,所以基本上它是一個單一的調用,它確實發佈到在所有通道調用自身。所以如果你有多個客戶端(比如說一百萬)訂閱單個頻道,那麼發佈給所有這些客戶端需要一些時間,然後是阻止。另請注意,阻止只會在發佈操作期間發生。
希望這回答你的問題。