English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Redis 발행 및 구독

Redis 발행 구독 (pub/sub)는 메시지 통신 모델로서: 발신자 (pub)가 메시지를 보내고, 구독자 (sub)가 메시지를 수신합니다.

Redis 클라이언트는 언제든지 언제든지 많은 수의 채널을 구독할 수 있습니다.

아래 그림은 채널 channel1 , 그리고 이 채널을 구독하는 세 개의 클라이언트 - client2 、 client5 및 client1 그들 간의 관계는 다음과 같습니다:

PUBLISH 명령어를 통해 채널 channel에 새 메시지가 전송되면1 그때, 이 메시지는 구독자인 세 개의 클라이언트에게 전송됩니다:

온라인 예제

다음 예제는 발행 구독이 어떻게 작동하는지 보여줍니다. 두 개의 redis를 시작해야 합니다-cli 클라이언트

우리의 예제에서는 구독 채널 이름을 만들었습니다 w3codeboxChat:

첫 번째 redis-cli 클라이언트

redis 127.0.0.1:6379> SUBSCRIBE w3codeboxChat
메시지를 읽고 있습니다... (Ctrl을 누르세요-C를 탈퇴하려면)
1) "subscribe"
2) "redisChat"
3) (integer) 1

현재, 먼저 redis 클라이언트를 다시 시작한 후, 동일한 채널 w3codeboxChat이 두 번의 메시지를发布하면, 구독자는 메시지를 수신할 수 있습니다.

두 번째 redis-cli 클라이언트

redis 127.0.0.1:6379> PUBLISH w3codeboxChat "Redis PUBLISH test"
(integer) 1
redis 127.0.0.1:6379> PUBLISH w3codeboxChat "Learn redis by oldtoolbag.com"
(integer) 1
# 구독자의 클라이언트는 다음과 같은 메시지를 표시합니다
 1) "message"
2) "w3codeboxChat"
3) "Redis PUBLISH test"
 1) "message"
2) "w3codeboxChat"
3) "Learn redis by oldtoolbag.com"

순서는 다음과 같습니다:

  • 로컬 Redis 서비스를 시작하며, 두 개의 redis를 시작합니다.-cli 클라이언트

  • 에서첫 번째 redis-cli 클라이언트SUBSCRIBE w를 입력합니다3codeboxChat, w를 구독하는 의미3codeboxChat 채널.

  • 에서두 번째 redis-cli 클라이언트PUBLISH w를 입력합니다3codeboxChat "Redis PUBLISH test"를 w로3codeboxChat 채널에서 메시지를 받게 됩니다. 이때 첫 번째 redis-cli 클라이언트는 두 번째 redis-cli 클라이언트가 보낸 테스트 메시지

Redis 발행 및 구독 명령어

다음 표는 redis 발행 및 구독에서 자주 사용하는 명령어를 나열합니다:

순번명령 및 설명
1PSUBSCRIBE 패턴 [패턴 ...]
지정된 패턴에 맞는 하나 또는 여러 개의 채널을 구독합니다。
2PUBSUB 서브커맨드 [인수 [인수 ...]]
구독 및 발행 시스템 상태를 확인합니다。
3PUBLISH 채널 메시지
지정된 채널로 정보를 전송합니다。
4PUNSUBSCRIBE [패턴 [패턴 ...]]
지정된 모든 패턴의 채널을 취소합니다。
5SUBSCRIBE 채널 [채널 ...]
지정된 하나 또는 여러 개의 채널에 대한 정보를 구독합니다。
6UNSUBSCRIBE [채널 [채널 ...]]
지정된 채널을 취소할 수 있습니다。