4

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 を押すと、「pub/sub」モードではなく redis-cli が終了します。問題を解決する方法を知っている人はいますか?

4

3 に答える 3

3

実際、 SUBSCRIBEPSUBSCRIBEはどちらも後続のすべてのコマンドをブロックするため、サーバーに注文を送信することはできませんが、熱心な視線を戻して、興味のあるチャネルが着信メッセージを待つようにします。うーん、このばかげた振る舞いには頭がくらくらします。ただし、telnet localhost 6379redis-cli の代わりに telnet を使用して redis にアクセスしようとすると、. すべてがうまくいくでしょう。それをチェックしてください。

于 2014-02-20T06:59:54.690 に答える
2

私の知る限り、チャネルにサブスクライブした後、redis-cli で新しいコマンドを発行することはできません。ただし、バージョン 2.4 以降、 SUBSCRIBEコマンドは可変長であるため、サブスクライブするために一度に複数のチャネルを渡すことができます。

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
于 2012-11-20T15:36:08.533 に答える