수색…
소개
Redis는 Publish / Subscribe (Pub / Sub) 메시징 패턴 구현을 제공합니다. 특정 수신자에게 메시지를 보내는 대신 Publishers는 간접적 인 메커니즘을 통해 관심있는 수신자에게 메시지를 보냅니다. 수신자는 특정 메시지에 관심을 나타냅니다. Redis에서는 채널의 PUBLISH 및 SUBSCRIBE 명령을 사용하여이 기능에 액세스합니다.
통사론
- SUBSCRIBE 채널 [채널 ...]
- UNSUBSCRIBE [채널 [채널 ...]]
- 게시 된 채널 메시지
- PSUBSCRIBE 패턴 [패턴 ...]
- PUNSUBSCRIBE [패턴 [패턴 ...]]
비고
redis에서 pub / sub를 처리하려면 게시 용으로 하나의 클라이언트 가 필요합니다. 둘 다 동일한 클라이언트에서 처리 할 수 없습니다. 다른 모든 명령은 여전히 동일한 클라이언트로 처리 할 수 있습니다.
redis로 게시 및 구독
Redis는 메시지 전송을 위해 게시 / 가입합니다. 이것은 채널에 가입하고 채널에 게시하여 처리됩니다. 예. 구독자는 하나 이상의 채널을 구독합니다. 게시자는 누가 모든 구독자인지 알 필요가 없습니다. 대신 게시자는 특정 채널에 게시합니다. 해당 채널을 구독하는 모든 구독자는 메시지를 받게됩니다. 이렇게 게시자와 가입자를 분리하면 확장 성이 향상되고보다 동적 인 네트워크 토폴로지가 가능해질 수 있습니다.
예 : 사용자가 2 개 채널을 구독하는 경우 foo & boo
SUBSCRIBE foo boo
redis-client1의 콘솔에서 다음을 수행합니다.
127.0.0.1:6379> SUBSCRIBE foo boo
Reading messages... (press Ctrl-C to quit)
1) "subscribe"
2) "foo"
3) (integer) 1
1) "subscribe"
2) "boo"
3) (integer) 2
메시지를 듣기 시작합니다. On on은 해당 채널에 대한 데이터를 가져옵니다.
예 : 부와 연결된 모든 구독자에게 메시지를 보내려는 경우 해당 채널에 게시해야합니다.
PUBLISH boo "Hello Boo"
redis-client1의 콘솔에서 다음을 수행합니다.
1) "message"
2) "boo" //channel name
3) "Hello Boo" //Actual data
언제든지 채널 구독을 취소하려면 다음을 사용하십시오.
UNSUBSCRIBE // to unsubscribe from all channels
UNSUBSCRIBE foo // to unsubscribe from specific channel
패턴을 기반으로 구독 할 수도 있습니다. 채널 이름이 PSUBSCRIBE를 사용하여 패턴을 기반으로 구독 할 것인지 확실하지 않거나 구독하려고합니다.
패턴 사용에 따른 탈퇴와 마찬가지로 PUNSUBSCRIBE