1. Redis Pub/Sub 개요
- Redis의 Pub/Sub(Publish/Subscribe) 시스템은 메시지 브로커링을 구현한 기능으로, 발행자와 구독자 간의 효율적인 메시지 전달을 지원합니다.
- 이 시스템의 핵심은 발행자와 구독자가 서로를 알 필요 없이 메시지를 주고받을 수 있다는 점입니다.
1.1 핵심 특징
- 발행자는 특정 채널에 메시지를 발행
- 구독자는 관심 있는 채널을 구독하여 메시지 수신
- 발행자와 구독자 간의 완전한 디커플링
- 확장성이 뛰어난 네트워크 토폴로지 구성 가능
2. 기본 명령어
2.1 구독 관련 명령어
SUBSCRIBE 명령어
SUBSCRIBE channel1 channel2
- 하나 이상의 채널을 구독할 수 있습니다. 구독 후에는 해당 채널로 전송되는 모든 메시지를 수신합니다.
UNSUBSCRIBE 명령어
UNSUBSCRIBE channel1
- 특정 채널의 구독을 취소합니다. 인자 없이 사용하면 모든 채널의 구독이 취소됩니다.
2.2 발행 관련 명령어
PUBLISH 명령어
PUBLISH channel1 "Hello World"
- 지정된 채널에 메시지를 발행합니 다. 해당 채널을 구독 중인 모든 클라이언트가 이 메시지를 수신합니다.
3. 메시지 전달 특성
3.1 At-most-once 전달 방식
- Redis Pub/Sub는 at-most-once 메시지 전달 방식을 사용합니다.
- 이는 다음을 의미합니다:
- 메시지는 최대 한 번만 전달됨
- 서버가 메시지를 보낸 후에는 재전송되지 않음
- 네트워크 문제 등으로 메시지가 손실되면 복구 불가능
경고
중요한 메시지의 경우, Redis Streams를 사용하여 더 강력한 전달 보장을 받을 수 있습니다.