Database

[Redis] Pub/Sub 개념

비번변경 2024. 8. 20. 19:01

개요

이전에 2023.05.30-[Redis] 개념 및 설치/실행, 2023.06.01-[Redis] redis-cli로 데이터 읽고 쓰기 등으로 Redis에 대한 간략한 개념이나 데이터를 읽고 쓰는 방법에 대해 적어두었었는데, 최근 다시 Redis를 사용한 개발을 수행하게 되었다.

관련하여 Pub, Sub라는 개념을 접하게 되어 적어둔다.

 

 

Pub/Sub

Pub, Sub란 Publish, Subscribe의 줄임말로 Message Queue를 통해 데이터를 교환하는 방법 중 하나이다.

Publish, Subscribe는 특정 주제(Topic)에 대해 구독한 수신자 모두에게 메시지를 발행하는 통신 방법이다. 즉, 하나의 클라이언트가 특정 Topic에 메시지를 Publish 하면, 해당 Topic에 연결되어 있는 여러 클라이언트가 메시지를 받을 수 있다.

주로 채팅, 푸시 알림, 구독 기능 등에 사용되는 방식이다.

 

 

Redis에서의 Pub/Sub

Redis에서의 Publish, Subscribe는 매우 단순한 구조로 되어 있어 유의할 점이 존재한다.

Redis의 Publish, Subscribe는 다른 소프트웨어와 동일하게 Topic을 구독하고 있는 모든 클라이언트에게 메시지를 전달한다. 다만 전달하는 메세지를 별도로 저장하지 않고 던지는 방식으로 동작한다. 때문에 구독하고 있는 클라이언트가 없으면 Publish 한 메시지는 그대로 사라지게 되며, 전달한 메시지의 수신 확인도 따로 수행하지 않는다.

즉, 보내는 쪽도 메세지를 보내기만 하고, 받는 쪽도 메시지를 받기만 한다.

 

따라서 메세지를 빠르게 보내야 하면서, 메시지 저장 또는 수신 확인이 필요하지 않은 경우에 사용하기에 좋다.

 

 

동작 방식

Redis에서의 Pub/Sub은 다음과 같이 동작한다.

 

  1. Subscriber가 Topic을 구독한다.
  2. 클라이언트가 Topic에 메시지를 Publish 한다.
  3. Topic을 구독하는 Subscriber가 메시지를 수신한다.

참고로 Redis는 Topic를 별도로 생성하지 않는다. 클라이언트가 Topic를 구독하면 Topic이 생성되는 방식으로 동작한다.

 

 

참고 문서

🗃️ REDIS의 PUB/SUB 기능 (채팅 / 구독 알림)
https://lucas-owner.tistory.com/60