Redis를 활용한 메시징 시스템의 두 기능은 모두 “데이터를 전달한다"는 목적은 같지만, **철학(Philosophy)**과 데이터 보존 방식에서 결정적인 차이가 있습니다.
한마디로 요약하자면: **Pub/Sub은 ‘방송’**이고, **Streams는 ‘기록이 남는 로그’**입니다.
1. Redis Pub/Sub (Publish/Subscribe)
가장 전통적인 형태의 메시징 모델입니다. 발신자가 메시지를 던지면, 그 순간 연결되어 있는 모든 수신자에게 실시간으로 전달됩니다.
- 휘발성 (Fire and Forget): 메시지를 보낸 후 어디에도 저장하지 않습니다. 수신자가 오프라인 상태라면 그 메시지는 영원히 사라집니다.
- 실시간성: 지연 시간이 거의 없어 실시간 알림이나 채팅에 적합합니다.
- 팬아웃(Fan-out): 하나의 메시지를 수천 명의 구독자에게 동시에 뿌릴 때 매우 효율적입니다.
2. Redis Streams
Kafka와 유사한 기능을 Redis에 구현한 모델입니다. 단순 전달을 넘어 데이터의 ‘이력’을 관리합니다.