반응형
1. Redis Pub/Sub 기능
Redis의 Pub/Sub(Publish/Subscribe) 기능은 메시지 기반의 통신 모델을 지원하는 기능이다. 이 모델에서는 메시지를 보내는 측(발행자, Publisher)과 메시지를 받는 측(구독자, Subscriber)이 직접 연결되지 않고, 채널을 통해 메시지를 주고받는다. 주요 개념은 다음과 같다.
- Publisher: 특정 채널에 메시지를 발행하는 역할
- Subscriber: 특정 채널을 구독하여 해당 채널에 발행된 메시지를 실시간으로 받아보는 역할
- Channel: 메시지가 전송되는 논리적 경로로, 구독자들은 이 채널에 연결되어 메시지를 수신
Redis의 Pub/Sub는 다음과 같은 특성을 가진
- 비동기 통신: 발행자는 구독자에게 직접 메시지를 보내는 대신 Redis 서버를 통해 채널로 메시지를 발행한다
- 실시간 메시징: 구독자가 구독한 채널로 들어오는 메시지를 실시간으로 수신할 수 있다
- 다중 구독자: 여러 구독자가 하나의 채널을 구독할 수 있고, 발행된 메시지는 모든 구독자에게 전송된다
참고로 Redis 의 Pub/Sub은 메세지를 따로 저장하지 않는다(Kafka 와는 다르다)
그렇기에 소프티어 프로젝트에서는 캐시를 통해 일정 개수의 메세지를 저장하고 사용자들이 웹소켓을 통해 연결이 되었을 때 캐시에 있는 메세지들을 보내주었다.
반응형