Study

Redis Pub/Sub

kinim329 2026. 4. 22. 23:09

Pub/Sub이란

Pub/Sub은 Publish/Subscribe의 줄임말이다

  • Publisher : 메시지를 보내는 쪽
  • Subscriber : 메시지를 받는 쪽
  • Channel : 메시지가 지나가는 통로

동작 방식

Redis Pub/Sub의 흐름은 다음과 같다.

1. Subscriber가 특정 채널을 구독한다

2. Publisher가 해당 채널에 메시지를 발행한다

3. Redis가 그 채널을 구독중인 Subscriber들에게 메시지를 전달한다

이 구조의 핵심은 중간에 Redis가 메시지 전달 역할을 해준다는 점이다.

덕분에 Publisher는 누가 이 메시지를 받는지 몰라도 되고, Subscriber도 누가 보냈는지 몰라도 된다.

왜 사용하는가?

Redis Pub/Sub은 실시간 메시지 전달이 필요할 때 유용하다

  • 채팅 메시지 전달
  • 실시간 알림
  • 사용자 접속 상태 변화 알림

이런 상황에서는 한 서버가 만든 이벤트를 다른 서버나 클라이언트에게 빠르게 알려줘야 한다.

이때 Redis Pub/Sub을 사용하면 별도의 복잡한 구현 없이 메시지를 실시간으로 전달할 수 있다.

장점

1. 구조가 단순하다

채널에 메시지를 발행하고 구독만 하면 되기 때문에 구조가 비교적 단순하다.

2. 실시간성이 좋다

메시지를 저장해두는 방식이 아니라, 발행되는 즉시 구독자에게 전달되므로 빠르게 반응할 수 있다.

3. 서버 간 통신에 활용하기 좋다

여러 서버가 떠 있는 환경에서 특정 이벤트를 공유해야 할 때 유용하다.

4. 결합도를 낮출 수 있다

Publisher와 Subscriber가 서로 직접 연결되지 않아도 되기 때문에 확장성과 유연성이 좋아진다

 

한계점

Redis Pub/Sub은 편리하지만 한계도 분명하다.

1.메시지 보관 기능이 없다.

Pub/Sub은 메시지를 저장하지 않는다.

구독자가 연결되어있지 않은 상태에서 메시지가 발행되면 그 메시지는 그냥 사라진다.

2. 전달 보장이 강하지 않다.

메시지를 반드시 처리해야 하는 시스템에는 적합하지 않을 수 있다.

3. 복잡한 메시지관리 기능이 부족하다.

Kafka같은 메시지 브로커에 비하면 재처리, 메시지 저장, 소비 이력 관리같은 기능이 부족하다.