如何在Redis 2.6.11中使用UNSUBSCRIBE命令

时间:2013-03-26 09:36:46

标签: redis

向特定频道发布消息。

redis 127.0.0.1:6379> PUBLISH channel message
(integer) 0

使用另一台Redis客户端我订阅了频道。

redis 127.0.0.1:6379> SUBSCRIBE channel
Reading messages... (press Ctrl-C to quit)
1) "subscribe"
2) "channel"
3) (integer) 1

在Redis客户端中,我收到了所有已发布的消息。现在我想取消订阅订阅频道。但是我无法在Redis客户端中输入取消订阅。当我使用Ctrl + c时,Redis客户端退出。如何在Redis客户端中编写Unsubscribe命令?

1 个答案:

答案 0 :(得分:0)

我不认为你可以在客户端发出取消订阅因为客户端被阻止了。 我写了一个ruby脚本来展示如何使用取消订阅。

require 'redis'
r = Redis.new
r.subscribe 'first' do |on|
  on.message do |e, d|
    puts e
    puts d
    r.unsubscribe
  end
end
puts "script was blocked?"

如果删除r.unsubscribe,则会阻止该脚本。 您可以添加if子句来检查何时取消订阅client.ex:

r.unsubscribe if d == 'leave'