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
客户端,我相信他们是指客户名单:
作为消费了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