[Redis] Redis Pub/Sub

2025. 9. 11. 22:25·Redis

Redis Pub/Sub

Publish/Subscribe (발행/구독) 패턴은 메시징 시스템의 대표적인 모델 중 하나이다. 발행자(Publisher)는 메시지를 특정 채널에 발행(publish)하고 구독자(Subscriber)는 원하는 채널을 구독(subscribe)한 뒤 해당 채널로 들어오는 메시지를 수신한다.

이것의 특징은 발행자와 구독자가 서로 직접 알 필요가 없고, 중앙 메시지 브로커가 메시지를 중개한다는 점이다. 


구조 

Redis에는 기본적으로 Pub/Sub 기능을 내장하고 있으며, 동작 흐름은 다음과 같다. 

  1. 구독 (Subscribe) : 클라이언트가 채널 구독 
  2. 발행 (Publish) :  다른 클라이언트가 명령어 실행 
  3. 전파 (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
'Redis' 카테고리의 다른 글
  • [Redis] 스프링이 제공하는 Redis 직렬화/역직렬화 (Serializer/Deserializer)
  • [Redis] Redis란 무엇인가 ?
erika0915
erika0915
백엔드 개발자가 되고 싶어요 .
  • erika0915
    erikoding
    erika0915
  • 전체
    오늘
    어제
    • 분류 전체보기 (78)
      • 프로젝트 (13)
        • 끼니콩 (3)
        • 덕메랑 (3)
        • handDoc (7)
        • Haeil (0)
      • Java (9)
        • 클린코더스 (0)
      • Spring (30)
      • Redis (3)
      • CS (7)
        • 운영체제 (3)
        • 컴퓨터구조 (0)
        • 네트워크 (4)
      • DevOps (2)
      • 코딩테스트 (0)
      • Tech (14)
        • TDD (1)
        • 정리 (5)
        • 우테코 (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    운영체제
    깃
    Spring
    스프링부트
    네트워크
    MongoDB
    java
    CoolSMS
    github
    파인튜닝
    코드레빗
    git
    jira
    레디스
    Network
    깃허브
    promtail
    coderabbit
    OS
    자바
    도커
    AI
    스프링
    docker
    지라
    springboot
    redis
    몽고디비
    TDD
    STT
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.5
erika0915
[Redis] Redis Pub/Sub

티스토리툴바