Redis) 레디스를 적용할 경우 성능 향상 테스트

Wonjun Lee·2025년 8월 13일

테스트 요약

테스트 상황

스레드 수스레드 당 호출 수스레드 생성 단위초호출하는 API
1000개1000회1초로그인, 테스트 API

측정 값

  1. 평균 응답 시간
  2. 90% Line
  3. 95% Line
  4. 99$ Line
  5. 최대 응답 시간
  6. 초당 처리량

테스트 조건

  1. MySQL 기반의 토큰 관리 로직
  2. Redis 기반의 토큰 관리 로직

테스트 수행

1, 테스트용 API 호출 결과

LabelSamplesAvgMedian90% Line95% Line99% LineMinMaximumError %ThroughputReceived KB/secSent KB/sec
MySQL1,000,00021713336073519930193020.04300.5758471059281842.5773119223791398.5271065295644
Redis1,000,00017120325026731316480.05745.8385764110342461.6766033762551868.5197714305416
개선율21.19816%-52%30.5%63.6735%84.295%96.6428%33.6063%

평가 : 평균적인 요청응답 시간의 개선율은 크지 않지만, 기존보다 90%, 95%, 99% Line이 명백히 낮아진 것을 보면, 응답시간의 편차가 크지 않은 것으로 보아 대량 트래픽에 대한 처리 안정성이 높아진 것으로 보임.

  1. 로그인 API 호출 결과
LabelSamplesAvgMedian90% Line95% Line99% LineMinMaximumError %ThroughputReceived KB/secSent KB/sec
MySQL101,67522081223483209733027363150464280.064666845.23158750749596645.9653748207752519.459385284708762
Redis101,12511638116591335313944151604194390.009888885.7285763334025779.3234797350997521.800446968821927
개선율47.2941%47.8298%58.3980%57.7800%58.2542%58.1309%84.7082%89.5325%72.5722%12.0305%

평가 : 로그인 과정에서 토큰을 인메모리/관계형 DB에 저장하는 연산이 있다. 평균 응답 시간이 47% 이상 개선되었다. 90%, 95%, 99% Line도 거의 60% 이상 개선되면서, 전체적인 편차도 줄어들었다.
가장 눈에 띄는 것은 초당 처리율로 많은 트래픽에 대해 효율적인 관리가 가능하다.


결론

기존의 토큰 인증 시스템에선 관계형 DB에 이전 토큰들을 관리하였고, 여기서 isExprired 같은 컬럼으로 유효성을 확인했다. 그러나, 어떤 토큰이 유효한지 검사하는 과정에서 다른 토큰들과 비교하는 것은 불필요한 연산으로 유효한 토큰만 기록하고 있다면, 검증에 문제가 없다.

관계형 DB는 토큰 유효기간 동안만 존재하는 데이터를 각 사용자 당 하나만 저장하는 것에 테이블을 제공해야하며, 자동으로 만료 처리가 어렵기 때문에 비용이 크다.

레디스는 인메모리 DB로 테이블이 아닌 Key 값으로 접근하며, 만료시간 설정이 가능하기 때문에 추가적인 로직 구현이 불필요하며, 읽고 쓰는 IO 연산에서 큰 비용을 요구하지 않는다.

대규모 트래픽을 상정한 서비스의 경우 Redis의 적용이 필수적으로 보인다. 캐싱 등을 제공하는 것이 트래픽 처리 응답시간에 큰 영향을 미침을 확인할 수 있었다.

profile
Samsung Electronics. SW Engineering.

0개의 댓글