2013-03-26 58 views
1

向特定頻道發佈消息。如何在Redis中使用UNSUBSCRIBE命令2.6.11

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

我不認爲你可以在客戶端發出取消訂閱,導致客戶端被阻止。 我寫了一個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'