2013-03-26 5 views
1

특정 채널에 메시지를 게시했습니다.Redis 2.6.11에서 UNSUBSCRIBE 명령을 사용하는 방법

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에서 수신 거부 명령을 작성하는 방법

답변

0

클라이언트 차단으로 인해 클라이언트에서 unsubscribe를 실행할 수 있다고 생각하지 않습니다. 나는 구독 취소 사용법을 보여주기 위해 루비 스크립트를 작성했다.

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' 
관련 문제