[REDIS] 사용 사례

박상준·2024년 3월 20일
0

REDIS

목록 보기
3/21
post-custom-banner

REDIS 사용 사례

  1. 캐싱
    1. 목적
      • 임시 데이터 ( 임시 비밀번호, 로그인 세션 ) 의 빠른 처리와 접근을 위함이다
    2. 이점
      • 데이터 처리 속도의 향상
      • 서버의 부하 감소
  2. 레이트 리미팅
    1. 목적
      1. 서버로의 과도한 요청을 방지하기 위해 특정 API 의 요청 횟수를 제한한다.
    2. 이점
      1. 서비스의 안정성 유지
      2. 자원의 효율적인 활용
  3. 메시지 브로커
    1. 목적

      1. 서비스 간 메시지를 중계하여 서비스 간의 결합도를 낮춘다.
    2. 이점

      1. 시스템의 확장성 및 유지보수성의 향상

      Redis 를 메시지 브로커로…?

      • Redis Stream 이 존재한다.
        • Kafka 같은 메시지큐와 결이 비슷한 친구이다
        • 하지만 카프카나 레디스 스트림 은 각각 장단점이 있으므로, 시스템 요구사항에 따라 선택이 달라미
  4. 실시간 분석 및 계산
    1. 목적
      1. 순위표, 반경 탐색, 실시간 방문자 수 계산 등 다양한 실시간 분석 및 계산을 수행한다.
    2. 이점
      1. 실시간 데이터 처리를 통한 사용자 경험 및 의사결정을 지원
  5. 실시간 채팅
    1. 목적

      1. Redis 의 펍서브(pub/ sub) 패턴을 활용하여 실시간 채팅 기능이 구현 가능하다.
    2. 이점

      1. 실시간 통신 기능 제공을 통한 사용자 상호작용 증진

      프로젝트에 적용해볼만하다.

      • 하지만 REDIS 단독으로는 사용이 의미가 없는 것 같다.
        • REDIS 의 펍서브는 메시지의 영속성을 제공하지 않는다.
          • 메시지가 전송되면 구독자가 온라인 상태가 아니라면 그 메시지를 받을 수 가 없음.
        • 기능의 제한
          • 사용자의 상태관리, 메시지 읽음 확인, 파일 전송 등의 복잡한 채팅 어플리케이션에 필요한 다양한 기능을 구현하긴 어렵다.

      만약 적용을 하려면.

      1. Redis + SQL or NoSQL 접목
        1. 사용자가 오프라인인 경우 메시지를 받을 수 있도록 영속성 보장
      2. 웹소켓 사용
      3. 메시지 큐 및 스트림 사용
        1. Redis 스트림

        2. Kafka

          같은 메시지 큐 시스템을 사용할 수 있음

profile
이전 블로그 : https://oth3410.tistory.com/
post-custom-banner

0개의 댓글