Redis取消订阅

dje*_*lin 4 publish-subscribe redis

Redis支持PUBSUB.订阅很简单:

redis 127.0.0.1:6379> subscribe foo
Reading messages... (press Ctrl-C to quit)
1) "subscribe"
2) "foo"
3) (integer) 1
Run Code Online (Sandbox Code Playgroud)

但是,似乎无法取消订阅,因为在订阅时,服务器不接受命令.例如,在redis-cli随redis一起提供的客户端中,控制权不会返回给客户端,所以如果我输入unsubscribe它就不会去任何地方.

这似乎是文档,函数或PEBKAC问题中的明显错误.是什么赋予了?

版:

$ ./redis-server --version
Redis服务器v = 2.6.14 sha = 00000000:0 malloc = libc bits = 64

Hom*_*er6 6

客户端,我相信他们是指客户名单:

http://redis.io/clients

作为消费了hiredis客户的人,我推测这个建议:

一旦客户端进入订阅状态,除了额外的SUBSCRIBE,PSUBSCRIBE,UNSUBSCRIBE和PUNSUBSCRIBE命令之外,它不应该发出任何其他命令.

在此页面上:http://redis.io/commands/subscribe仅适用于那些客户.

redis-cli就是其中之一.因此,评论不是redis-cli用户的指示.

相反,redis-cli阻塞等待总线上的消息(仅通过ctrl + c取消订阅).

如果您要使用不同的客户端(或者更具体地说,如果您正在实现其中一个),我的猜测是您必须遵守该约定以使其处于订阅状态(尽管客户端不一定是阻塞).

我认为文档可以更清楚地消除歧义; 但是,文档位于服务器本身,而不是redis-cli应用程序.但是,您可以在文档仓库中进行调整并提交拉取请求.

https://github.com/antirez/redis-doc/blob/master/commands/subscribe.md