수색…


소개

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



Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow