Redis를 도입하게된 이유는?

기존 DB (MySQL, PostgreSQL 등)의 문제점:

  1. 느린 조회 속도
    • 디스크 기반이라 복잡한 JOIN 쿼리 시 수백ms~수초 소요
    • 인덱스가 있어도 여전히 디스크I/O 병목
    • 동시 사용자 많아지면 성능 급격히 저하
  2. 동시성 문제
    • 트랜잭션 락 때문에 대기시간 발생
    • 좋아요/조회수 같은 빈번한 업데이트 시 데드락 위험
    • 높은 동시 접속 시 커넥션 풀 부족
  3. 확장성 한계
    • Scale-up(서버 성능 업그레이드)만 가능, 비용 급증
    • 읽기 전용 복제본 만들어도 쓰기는 마스터 하나에 집중
    • 샤딩 구조 복잡, 운영 어려움
  4. 실시간 처리 부적합
    • 매번 디스크 접근으로 실시간 랭킹/카운터 업데이트 비효율
    • 세션 데이터 DB 저장 시 불필요한 영속성 오버헤드

Redis 도입 배경

  • 트래픽 급증으로 인한 장애
  • 특정 기능의 성능 병목
  • 비즈니스 요구사항 변경
  • 운영 이슈 즉 Redis의 일반적 장점을 알고 도입하는 게 아닌 현재 시스템에 구체적인 문제 발생하거나 해결 방안 검토 중 Redis가 적합하다고 판단