Redis ‐ Redis Message Listener Containers - dnwls16071/Backend_Summary GitHub Wiki

📚 RedisMessageListenerContainer

  • RedisMessageListenerContainer는 Spring Data Redis에서 제공하는 클래스로, Redis의 Pub/Sub(발행/구독) 모델을 사용하여 메시지 수신을 처리하는 역할을 한다.
  • Redis Pub/Sub은 특정 채널(topic)에 메시지를 발행(publish)하고, 해당 채널을 구독(subscribe)하는 모든 클라이언트에게 메시지를 전달하는 방식으로 동작한다. 이 때, RedisMessageListenerContainer는 Spring 애플리케이션이 Redis 채널을 비동기적으로 구독하고, 메시지가 도착하면 등록된 MessageListener 인스턴스에 전달하도록 관리한다.

주요 역할 및 동작 방식

  • 채널 구독 관리 : RedisMessageListenerContainer는 하나 이상의 Redis 채널을 구독한다. 리스너 컨테이너에게 어느 채널을 구독할 것인지를 설정한다.
  • 메시지 수신 및 변환 : Redis로부터 메시지가 수신되면, 컨테이너는 메시지를 MessageListener가 처리할 수 있는 형식으로 변환한다.
  • 리스너에게 메시지를 전달 : 메시지가 변환되면, 컨테이너는 등록된 MessageListeneronMessage()메서드를 호출하여 메시지를 전달한다.
  • 쓰레드 관리 : 메시지 수신에 대한 모든 스레드 처리를 담당한다.
  • 연결 관리 : Redis와의 연결을 관리하며, 연결이 끊어지거나 재연결될 때 자동으로 처리한다.