如何在进入“pub / sub”模式后发出“subscribe”命令?

时间:2012-11-20 15:21:52

标签: redis publish-subscribe

使用redis-cli后,在进入“pub / sub”模式后,我找不到任何方式订阅其他频道。例如:

$ redis-cli
redis> SUBSCRIBE channel:1
Reading messages... (press Ctrl-C to quit)
1) "subscribe"
2) "channel:1"
3) (integer) 1

当我按下Ctrl-C时,redis-cli退出而不是“pub / sub”模式。有谁知道如何解决这个问题?

3 个答案:

答案 0 :(得分:1)

AFAIK,订阅频道后,您无法在redis-cli中发出新命令。但是,SUBSCRIBE命令自版本2.4以来是可变参数,这意味着您可以一次传递多个通道,以订阅:

redis 127.0.0.1:6379> SUBSCRIBE channel:1 channel:2
Reading messages... (press Ctrl-C to quit)
1) "subscribe"
2) "channel:1"
3) (integer) 1
1) "subscribe"
2) "channel:2"
3) (integer) 2

答案 1 :(得分:1)

实际上,SUBSCRIBEPSUBSCRIBE都会阻止所有后续命令,因此您无法将任何订单发送到服务器,但会将您的热切目光投回到等待感兴趣的频道进行传入信息。嗯,这种荒谬的行为也让我头晕目眩。 但是,如果您尝试通过telnet telnet localhost 6379而不是redis-cli访问redis。一切都会变好。检查出来。

答案 2 :(得分:0)

这是redis-cli的问题,而不是Redis的问题。

Redis说,我们允许在发布一个SUBSCRIBE之后发布SUBSCRIBE个。但是,redis-cli阻止

因此,如@ user1611552所建议,我们可以使用

telnet localhost 6379

代替redis-cli,一切都会好起来的。