콘텐츠로 이동

2024 09 24

2024-09-24

Redis Pub/Sub

참고: https://inpa.tistory.com/entry/REDIS-%F0%9F%93%9A-PUBSUB-%EA%B8%B0%EB%8A%A5-%EC%86%8C%EA%B0%9C-%EC%B1%84%ED%8C%85-%EA%B5%AC%EB%8F%85-%EC%95%8C%EB%A6%BC 참고: https://lucas-owner.tistory.com/60

  • 개요
    • 채널을 구독한 수신자(클라이언트) 모두에게 메시지를 전송하는 것
    • 하나의 클라이언트가 메시지 Publish -> 해당 Topic에 연결된 다수의 클라이언트가 메시지를 수신받음
  • 사용처
    • 채팅, 푸시알림 등에 사용
      • 특정 작업 반복 수행하는 작업자에게 비동기적으로 작업 보내 처리하도록 하거나
      • 로그인한 사용자에게 푸시 발송
  • Redis pub/sub 특징
    • 단순한 구조
    • 메시지를 따로 보관하지도 않음
    • subscribe 대상이 하나도 없는 상황에도 publish 해도 사라짐
    • 메시지 큐 처럼 수신 확인 X
    • In-memory 기반이라 굉장히 빠르게 메시지 받을 수 있음
      • 접속중인 클라에게 간단한 메시지 빠르게 보내고, 수신확인 필요 없을 때, 전송 보장 하지 않아도 되는 경우 괜찮다
  • Pub/Sub 명령어
    • subscribe [channel ...] : 채널 구독해 메시지 수신 (여러개 동시 구독도 가능)
    • publish channel message : 메시지를 지정한 채널로 송신
    • pubsub subcommand : 서버에 등록된 채널이나 패턴 조회