Redis Stream으로 재고 변동 이력 관리, 성능 개선!

by DD
1년 전
조회수 39

Redis Stream을 활용하여 재고 변동 이력을 시계열 데이터로 관리

1,000만 SKU의 대량 데이터 처리 과정에서 Redis CPU 및 API Latency 증가 문제 발생

Redisson 라이브러리를 활용, XRANGE 명령어 최적화로 조회 성능 향상

Redis Stream의 시계열 데이터 처리 원리

Redis Streamappend-only 특성을 가진 시계열 데이터 처리에 특화되어 있다. 구체적으로 XADD 명령어를 통해 데이터를 추가하고, XRANGE를 사용하여 데이터를 조회한다. 따라서 실시간 데이터 처리로그 수집에 효과적이다.

XRANGE 명령어의 성능 최적화

XRANGE 명령어는 O(log(N)+M)의 시간 복잡도를 가지므로, 대량 데이터 조회 시 성능 저하가 발생할 수 있다. SCANHSCAN 명령어를 활용하여 조회 범위를 분할하고, RedissonReactiveClient를 통해 비동기 처리를 적용하여 성능을 개선한다.

적절한 조회 범위 설정의 중요성

조회 범위가 너무 길면 XRANGE의 시간 복잡도가 증가하고, 짧으면 명령어 호출 횟수가 증가하여 자원 낭비가 발생한다. 따라서 데이터 분포도 분석을 통해 적절한 조회 범위를 설정하는 것이 중요하다. 시간대별 데이터 분포를 파악하여 최적의 성능을 확보한다.

재고의 변동을 시계열 데이터로?!