- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
Redis 支持 PUBSUB。订阅非常简单:
redis 127.0.0.1:6379> subscribe foo
Reading messages... (press Ctrl-C to quit)
1) "subscribe"
2) "foo"
3) (integer) 1
但是取消订阅似乎是不可能的,因为在订阅时,服务器不接受命令。例如在 Redis 附带的 redis-cli
客户端中,控制权不会返回给客户端,因此如果我键入 unsubscribe
它不会去任何地方。
这似乎是文档、函数或 PEBKAC 问题中的明显错误。给了什么?
版本:
$ ./redis-server --version
Redis server v=2.6.14 sha=00000000:0 malloc=libc bits=64
最佳答案
客户,我相信他们指的是这里的客户名单:
作为消费过hiredis客户端的人,我推测这个推荐:
Once the client enters the subscribed state it is not supposed to issue any other commands, except for additional SUBSCRIBE, PSUBSCRIBE, UNSUBSCRIBE and PUNSUBSCRIBE commands.
在此页面上: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
关于Redis 退订,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17621371/
我是一名优秀的程序员,十分优秀!