레디스
- 실시간 처리: Redis는 데이터를 메모리에 저장하므로 실시간 처리에 매우 적합합니다. WebSocket 기반의 실시간 채팅 기능에는 Redis가 훌륭한 선택입니다.
- Pub/Sub 기능: Redis의 Pub/Sub 기능을 이용하면 여러 사용자 간 메시지를 효율적으로 브로드캐스트하거나 구독-발행 모델을 구현할 수 있습니다. 예를 들어, 채팅방의 메시지를 실시간으로 브로드캐스트하는 데 적합합니다.
- Session 저장소: Redis는 사용자 세션 데이터(예: 인증 토큰)를 저장하거나 사용자 상태(예: 온라인/오프라인 여부)를 관리하는 데 유용합니다.
일시적 데이터: 채팅 메시지가 영구 저장되지 않아도 되는 경우(예: 실시간 메시징 또는 라이브 방송 중에만 사용하는 데이터) Redis가 더 적합합니다.
몽고(8.0.4)
- 영구 데이터 저장: MongoDB는 채팅 메시지, 사용자 기록, 라이브 방송의 메타데이터(예: 시작 시간, 시청자 수)를 영구적으로 저장하는 데 적합합니다.
- 유연한 스키마: 채팅 메시지와 같은 비정형 데이터를 저장하기 편리하며, 사용자별로 다른 구조의 데이터를 유연하게 관리할 수 있습니다.
- 데이터 분석 및 이력 관리: 라이브 방송 기록, 채팅 메시지 저장 및 검색, 사용자 행동 분석 등에 유용합니다.
- 유저 정보 및 스터디정보, 채팅 메세지
- 다수의 중계모델(4개)로 인해 RDBMS로 관리가 어려울 것이라고 판단함