2

向特定频道发布消息。

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 Client 中如何编写取消订阅命令?

4

1 回答 1

1

我认为您不能在客户端中取消订阅,因为客户端被阻止了。我写了一个 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'
于 2013-06-21T08:21:17.443 回答