向特定频道发布消息。
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命令?
答案 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'