Redis Pub/Sub 에 대해서 알아보기.

2024. 9. 24. 17:32·개발중/Redis
728x90
반응형

Redis Pub/Sub

Redis Pub/Sub(Publish/Subscribe)는 Redis에서 제공하는 메시징 시스템으로, 발행자(Publisher)가 메시지를 특정 채널에 발행하고, 구독자(Subscriber)는 해당 채널을 구독하여 메시지를 수신하는 방식입니다.

 

이 방식은 비동기적 통신을 가능하게 하며, 발행자와 구독자가 서로 직접적으로 통신하지 않고, Redis가 중간에서 메시지를 라우팅하는 역할을 합니다.

 

Redis Pub/Sub 동작 방식

Publisher (발행자)

발행자는 특정 채널로 메시지를 보냅니다.

발행자는 메시지를 보낼 때 구독자가 있는지 여부를 알 필요가 없습니다.

여러 구독자가 있으면, 같은 채널을 구독한 모든 구독자에게 메시지가 전송됩니다.

 

Subscriber (구독자)

구독자는 하나 이상의 채널을 구독하여, 해당 채널에서 발행된 메시지를 실시간으로 수신합니다.

구독 중인 채널에서 발행된 메시지를 실시간으로 수신할 수 있으며, 다수의 구독자가 같은 채널을 구독할 수 있습니다.

 

Channel (채널)

채널은 발행자와 구독자가 연결되는 중간 통로입니다. 발행자는 특정 채널로 메시지를 발행하고, 구독자는 해당 채널을 구독하여 메시지를 받습니다.

패턴 기반 구독도 가능하여, 특정 패턴과 일치하는 모든 채널을 구독할 수 있습니다.

 

Redis (메시지 브로커)

Redis는 발행자와 구독자를 연결하는 메시지 브로커 역할을 합니다.

발행자는 메시지를 Redis에 보내고, Redis는 해당 메시지를 구독 중인 모든 구독자에게 전달합니다.

 

Redis Pub/Sub 명령어

메시지 발행 (PUBLISH)

PUBLISH <channel> <message>: 지정된 채널에 메시지를 발행합니다.

PUBLISH news_channel "Breaking news!"

 

메시지 구독 (SUBSCRIBE)

SUBSCRIBE <channel>: 특정 채널을 구독합니다. 구독자는 해당 채널에서 발행된 모든 메시지를 수신합니다.

SUBSCRIBE news_channel

 

패턴 기반 구독 (PSUBSCRIBE)

PSUBSCRIBE <pattern>: 특정 패턴에 해당하는 채널들을 한 번에 구독합니다. 패턴 구독은 와일드카드를 사용하여 다수의 채널을 구독할 수 있습니다.

PSUBSCRIBE news_*

 

 

구독 취소 (UNSUBSCRIBE / PUNSUBSCRIBE)

특정 채널의 구독을 중단합니다.

UNSUBSCRIBE <channel>

 

 패턴 구독을 중단합니다.

PUNSUBSCRIBE <pattern>

 

예시

발행자(Publisher) 측

이 명령은 news_channel 채널에 "Breaking news!" 메시지를 발행합니다.

news_channel을 구독하고 있는 모든 구독자에게 메시지가 전달됩니다.

PUBLISH news_channel "Breaking news!"

 

구독자(Subscriber) 측

이 명령은 news_channel을 구독하게 하며, 해당 채널에서 발행되는 모든 메시지를 수신합니다.

SUBSCRIBE news_channel

패턴 구독

이 명령은 news_로 시작하는 모든 채널을 구독합니다. 예를 들어, news_channel, news_sports 등의 채널에서 발행된 메시지를 모두 수신하게 됩니다.

PSUBSCRIBE news_*

 

728x90
반응형
저작자표시 (새창열림)

'개발중 > Redis' 카테고리의 다른 글

[Redis] Sentinel tilt mod Error 해결 : 버전문제  (0) 2024.12.20
[redis] sentinel : waitpid() returned a pid (...) we can't find in our scripts execution queue!  (0) 2024.11.18
[트러블 슈팅] Headless Service 에 대한 오해 (1)  (0) 2023.09.18
고성능을 위한 Redis (High Availability, HA)와 Kubernetes 구축 마스터 가이드 (Spring Session storage 설정까지)  (1) 2023.09.18
[트러블슈팅] Could not connect to Redis at 127.0.0.1:6379: Connection refused  (0) 2023.09.12
'개발중/Redis' 카테고리의 다른 글
  • [Redis] Sentinel tilt mod Error 해결 : 버전문제
  • [redis] sentinel : waitpid() returned a pid (...) we can't find in our scripts execution queue!
  • [트러블 슈팅] Headless Service 에 대한 오해 (1)
  • 고성능을 위한 Redis (High Availability, HA)와 Kubernetes 구축 마스터 가이드 (Spring Session storage 설정까지)
Binsoo
Binsoo
내 트러블 슈팅
  • Binsoo
    정수빈 기술블로그임.
    Binsoo
  • 전체
    오늘
    어제
    • 빈수 개발자 개발 일기 (932)
      • 개발중 (634)
        • Spring Boot (95)
        • Spring Security (2)
        • Spring Batch (6)
        • Spring Boot & Redis (13)
        • Java Persistence API (JPA) (28)
        • Web (42)
        • Rest Api (7)
        • Spring Concurrency Control (3)
        • Redis (8)
        • Kubernetes (k8s) (4)
        • MYSQL (35)
        • AirFlow (15)
        • Docker (2)
        • Git (22)
        • Linux (9)
        • JSON Web Tokens (JWT) (4)
        • Troubleshooting (87)
        • Swagger (0)
        • Vue.js (52)
        • Java (74)
        • html (12)
        • C (5)
        • jQuery (15)
        • JavaServer Pages (JSP) (17)
        • Arduino (1)
        • JavaScript (35)
        • Amazon Web Services (AWS) (11)
        • Algorithm (9)
        • 참고 기능 (18)
        • mongo (2)
      • PROJECT (27)
        • 스프링부트+JPA+몽고 API 개발 (3)
        • MINI (2)
        • 게시판 (3)
        • vue 프로젝트 (1)
        • JPA 사이드 프로젝트 기록 (17)
      • TEAM STUDY (156)
        • 가상 면접 사례로 배우는 대규모 시스템 설계 기초 (8)
        • 한 권으로 읽는 컴퓨터 구조와 프로그래밍 (12)
        • NAVER DEVELOPER (4)
        • LINUX (23)
        • PYTHON (19)
        • SERVER (8)
        • 알고리즘 코딩 테스트 스터디 (31)
        • 쿠버네티스 (40)
        • 대세는 쿠버네티스 [초급~중급] (11)
      • BOOK (0)
      • 자격증 (61)
        • 리눅스 1급 - 필기 기록 (19)
        • 네트워크 관리사 (2)
        • 네트워크 관리사 2급 - 실기 기록 (21)
        • 네트워크 관리사 2급 - 필기 기록 (16)
        • 정보처리 (2)
      • 직장인 대학원 (17)
        • 기록 (1)
        • 캐글 스터디 (3)
        • R (12)
  • 블로그 메뉴

    • 홈
    • 태그
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    네트워크 관리사 실기
    네트워크 관리사 2급
    쿠버네티스 스터디
    springboot
    java
    리눅스 마스터 1급
    파이썬
    jpa
    Git 저장소
    redis
    네트워크 관리사 요약
    리눅스 마스터
    REST API
    리눅스 마스터 요약
    리눅스 마스터 1급 요약
    git
    쿠버네티스
    네트워크 관리사
    BackendDevelopment
    리눅스 1급 요약
    스프링
    네트워크 관리사 학점
    리눅스 마스터 1급 정리
    파이썬 알고리즘
    Spring
    네트워크 관리사 자격증
    알고리즘
    docker
    네트워크 관리사 2급 실기
    VUE
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.4
Binsoo
Redis Pub/Sub 에 대해서 알아보기.
상단으로

티스토리툴바