如何在Redis的2.6.11使用退订命令(How to use UNSUBSCRIBE comma

2019-08-18 00:18发布

公布的消息到特定的信道。

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的客户的退订指令?

Answer 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,该脚本将被阻止。 你可以,如果子句添加到检查时取消client.ex:

r.unsubscribe if d == 'leave'


文章来源: How to use UNSUBSCRIBE command in Redis 2.6.11
标签: redis