1 of 22

강다원

Redis와 Spring Boot를 활용한 애플리케이션 성능 최적화

https://www.canva.com/design/DAGTpXVkg1w/anu7yG68V_cVkKl9PI5vcA/edit

2 of 22

Overview

Redis 기본 개념

03

Redis 주요 사용 사례

05

Redis 캐싱 전략

06

Spring Boot + Redis로 구현하기

1 1

AWS EC2에서 Redis 활용하기

15

성능 테스트 및 부하 테스트

18

결론

22

3 of 22

Redis란?

레디스(Redis)는 Remote Dictionary Server의 약자로서, “키-값” 구조의 비정형 데이터를 저장하고 관리하기 위한 오픈 소스 기반의 비관계형 데이터베이스 관리 시스템(DBMS)이다.

​

​

쉽게 말해서 데이터 처리 속도가 빠른 NoSQL 데이터베이스이다.

​

​

Redis 기본 개념

4 of 22

Redis 특징 및 장점

Redis 기본 개념

1. 성능 : Redis는 데이터를 메모리에 저장해 평균 1ms의 빠른 읽기/쓰기 속도를 제공, 디스크 기반 DB보다 성능이 뛰어나다.

​

2. 유연한 데이터 구조 : 다양한 데이터 타입(String, List, Set 등)을 지원해 애플리케이션 요구에 맞는 유연한 데이터 처리가 가능하다.

​

3. 개발 용이성 : 복잡한 쿼리문 없이 간단한 명령으로 데이터 저장/조회가 가능하며, 다양한 언어(Java, Python 등)를 지원한다.

​

4. 영속성 : 데이터는 디스크에 저장 가능해 서버 문제 발생 시에도 복구할 수 있다.

5 of 22

Redis 주요 사용 사례

    • 캐싱 (Caching)

​

    • 세션 저장소 (Session Store)

​

    • 메시지 큐 (Message Queue)

​

    • 실시간 분석 (Real-Time Analytics)

​

    • 리더보드 및 랭킹 시스템 (Leaderboard and Ranking System)

​

    • 분산 잠금 (Distributed Locking)

​

    • 지리 공간 정보 저장 (Geospatial Data Storage)

​

6 of 22

Redis 캐싱 전략

캐시(Cache)는 자주 사용하는 데이터나 값을 미리 복사해 놓는 임시 저장소이다.

캐시(Cache)? 캐싱(Caching)?

캐싱(Caching)이란 캐시(Cache, 임시 데이터 저장소)에 접근해서 데이터를 빠르게 가져오는 방식이다.

7 of 22

Redis 캐싱 전략

Cache Aside 전략

Cache Hit : 캐시에 데이터가 있을 경우

Cache miss : 캐시에 데이터가 없을 경우

캐시(Cache)에서 데이터를 확인하고, 없다면 DB를 통해 조회해오는 방식

8 of 22

Redis 캐싱 전략

Write Around 전략

데이터를 어떻게 사용할지(저장, 수정, 삭제)에 대한 전략이다.

9 of 22

Redis 캐싱 전략

Cache Aside, Write Around 전략의 한계점

Cache Aside 전략 (Cache Hit)

Write Around 전략

캐시된 데이터와 DB 데이터가 일치하지 않을 수 있다.

10 of 22

Redis 캐싱 전략

TTL (Time to Live) : 만료 시간 설정 기능

11 of 22

Spring Boot + Redis로 구현하기

1. Redis 의존성 추가

12 of 22

Spring Boot + Redis로 구현하기

2. application.yml

Redis 설정을 추가하고, 캐시 관련 로그를 조회할 수 있도록 설정

13 of 22

Spring Boot + Redis로 구현하기

3. Redis 연결 및 캐싱 설정 (RedisConfig, RedisCacheConfig)

Redis 연결 및 캐싱 설정을 위한 클래스를 작성

14 of 22

Spring Boot + Redis로 구현하기

4. BoardService에 캐싱 로직 추가

@Cacheable 어노테이션을 사용하여 캐싱을 적용

15 of 22

AWS EC2에서 Redis 활용하기

아키텍처

16 of 22

AWS EC2에서 Redis 활용하기

EC2, RDS, Spring Boot, Redis 셋팅 요약

EC2 - t3.small

    • Spring Boot
    • Redis

​

RDS - t3.micro

​

17 of 22

성능 테스트 및 부하 테스트

redis 미적용

1000000건 중

최신 등록 순 10개 조회

​

(대략) 평균 730ms

18 of 22

성능 테스트 및 부하 테스트

redis 적용

1000000건 중

최신 등록 순 10개 조회

​

(대략) 평균 200ms

​

19 of 22

성능 테스트 및 부하 테스트

redis 미적용된 Board 조회 API의 Througput

    • (1000000건) 10초에 60번 처리

​

    • TPS : 3.2

​

20 of 22

성능 테스트 및 부하 테스트

redis 적용된 Board 조회 API의 Througput

    • (1000000건) 10초에 1437번 처리

​

    • TPS : 141.1

​

21 of 22

결론

Redis보다는 ElastiCache가 편하다.

22 of 22

감사합니다.