본문 바로가기

Backend/Spring

Spring Boot Session Redis 연동, 저장

이미 구현한 Spring Session의 데이터를 Redis에 저장하는 방법에 대해서 알아볼거에요.

예제 소스가 필요하신 분은 아래 글을 참고해주세요.

https://gofnrk.tistory.com/42

 

Spring Boot Session 사용하기 (Bean Scope)

Spring Boot에서 세션을 사용하는 방법에 대해서 알아볼게요. Bean Scope를 활용하여 session 데이터를 편리하게 관리할 수 있는 방법을 알려드릴거에요. 굉장히! 간단합니다. 컴포넌트 하나만 추가하면 되요. Use..

gofnrk.tistory.com

build.gradle

dependencies {
	implementation 'org.springframework.boot:spring-boot-starter-data-redis'
	implementation 'org.springframework.session:spring-session-data-redis'
}

application.yml

flush-mode: on-save (default, 호출될 때만 Redis에 기록), immediate (즉시 Redis에 기록)

namespace: 세션을 저장하는 데에 key값이 prefix라고 보시면되요. default는 spring:session입니다.

나머지 설정은 굳이 설명안해도 될 것 같아서 넘어갈게요.

 

spring:
  redis:
    host: localhost
    port: 6379
  session:
    timeout: 600
    store-type: redis
    redis:
      flush-mode: on-save
      namespace: spring:session

 

redis-cli에서 아래와 같이 세션 데이터가 저장됨을 확인할 수 있어요.

 

 

세션 시간(timeout)이 만료되면 데이터베이스 자체에서 완벽히 삭제 처리합니다.

 

 

Redis는 키-값 구조의 비정형 데이터를 저장하는 메모리 기반 데이터베이스죠.

세션 데이터는 단순히 키-값 구조이기 때문에 많은 저장 메모리 용량을 요구하지 않고, 높은 속도가 중요하므로 Redis는 그야말로 세션을 저장하기에 가장 알맞는 데이터베이스라고 봅니다.