使用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”模式。有谁知道如何解决这个问题?
答案 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)
实际上,SUBSCRIBE和PSUBSCRIBE都会阻止所有后续命令,因此您无法将任何订单发送到服务器,但会将您的热切目光投回到等待感兴趣的频道进行传入信息。嗯,这种荒谬的行为也让我头晕目眩。
但是,如果您尝试通过telnet telnet localhost 6379
而不是redis-cli访问redis。一切都会变好。检查出来。
答案 2 :(得分:0)
这是redis-cli
的问题,而不是Redis的问题。
Redis说,我们允许在发布一个SUBSCRIBE
之后发布SUBSCRIBE
个。但是,redis-cli
将阻止。
因此,如@ user1611552所建议,我们可以使用
telnet localhost 6379
代替redis-cli
,一切都会好起来的。