Redis Pub/Sub
Publish/Subscribe (발행/구독) 패턴은 메시징 시스템의 대표적인 모델 중 하나이다. 발행자(Publisher)는 메시지를 특정 채널에 발행(publish)하고 구독자(Subscriber)는 원하는 채널을 구독(subscribe)한 뒤 해당 채널로 들어오는 메시지를 수신한다.
이것의 특징은 발행자와 구독자가 서로 직접 알 필요가 없고, 중앙 메시지 브로커가 메시지를 중개한다는 점이다.
구조
Redis에는 기본적으로 Pub/Sub 기능을 내장하고 있으며, 동작 흐름은 다음과 같다.
- 구독 (Subscribe) : 클라이언트가 채널 구독
- 발행 (Publish) : 다른 클라이언트가 명령어 실행
- 전파 (Broadcast) : Redis 서버는 채널을 구독한 모든 클라이언트에게 메시지를 즉시 전송
구독자는 자신이 구독한 채널에 메시지가 올 때마다 실시간으로 메시지를 받게 된다.
특징
장점
- 실시간성 : 메시지가 발행되면 구독자는 즉시 수신
- 단순함 : 별도의 브로커 설치 없이 Redis만으로 구현 가능
- 가벼움 : 인메모리 기반이라 지연(latency)가 매우 낮음
단점
- 비영속성 : Pub/Sub 메세지는 Redis에 저장되지 않음 → 구독자가 연결되어 있지 않으면 메시지를 놓침
- 스케일 한계 : 구독자가 많아질 수록 Redis 서버 부하 증가 (특히 수천-수만 구독자 상황)
- 보완 필요 : 메시지 내구성이 중요한 경우 Kafka, RabbitMQ 같은 전문 메시지 브로커가 필요
활용
- 실시간 채팅 시스템 : 채널 기반으로 메시지를 여러 사용자에게 전송
- 알림 브로드캐스트 : 특정 이벤트를 다수 서버/클라이언트에 전송
- 실시간 스트리밍 : 주식 시세, 경기 점수판, 센서 데이터 등 빠른 전달이 필요한 데이터
'Redis' 카테고리의 다른 글
| [Redis] 스프링이 제공하는 Redis 직렬화/역직렬화 (Serializer/Deserializer) (0) | 2025.09.16 |
|---|---|
| [Redis] Redis란 무엇인가 ? (0) | 2025.09.09 |