使用 redis-cli 进入“发布/订阅”模式后,我找不到任何订阅其他频道的方法。例如:
$ 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”模式。有谁知道如何解决这个问题?
使用 redis-cli 进入“发布/订阅”模式后,我找不到任何订阅其他频道的方法。例如:
$ 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”模式。有谁知道如何解决这个问题?
实际上, SUBSCRIBE和PSUBSCRIBE都会阻止所有后续命令,因此您不能将任何订单发送到服务器,而是将您的热切目光投向等待您感兴趣的频道接收消息。好吧,这种荒谬的行为也让我头晕目眩。但是,如果您尝试通过 telnettelnet localhost 6379
而不是 redis-cli 的方式访问 redis。一切都会变好。请检查一下。
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
这是的问题redis-cli
,而不是 Redis的问题。
Redis 说我们可以在发出SUBSCRIBE
一个之后再发出一个SUBSCRIBE
。但是,redis-cli
会阻止一切。
因此,正如@user1611552 所建议的,我们可以使用
telnet localhost 6379
而不是redis-cli
, 一切都会好起来的。