티스토리 뷰

Java/Spring

Spring Redis Session

작은 거인 2018. 6. 27. 21:48

외주 작업중인 프로젝트에 계속해서 다양한 모듈이 붙으면서 여러 프로젝트의 세션을 공유할 필요가 생겼다. 협업 환경에 대한 사정으로 사용하지 못해, 정리 해둔 내용을 훗날 쓸지 몰라서 기록한다. 처음엔 관계형DB에 넣기 위해 JDBC 세션을 사용했다가 전부터 눈여겨보던 Redis를 도입하기로 결정했다.



가정



로컬에선 Embedded Redis를 사용하고, 테스트 환경에선 라즈베리파이 3에 독립형 Redis를 설치해서 사용한다고 가정한다.



Dependency



    compile('org.springframework.boot:spring-boot-starter-data-redis')

    compile('org.springframework.session:spring-session-data-redis')

    compile group: 'it.ozimov', name: 'embedded-redis', version: '0.7.2'



Embedded Redis 설정(로컬용)


import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Profile;
import redis.embedded.RedisServer;

import javax.annotation.PostConstruct;
import javax.annotation.PreDestroy;
import java.io.IOException;

@Profile("local")
@Configuration
public class EmbeddedRedisConfig {

@Value("${spring.redis.port}")
private int redisPort;

private RedisServer redisServer;

@PostConstruct
public void redisServer() throws IOException {
redisServer = new RedisServer(redisPort);
redisServer.start();
}

@PreDestroy
public void stopRedis() {
if (redisServer != null) {
redisServer.stop();
}
}
}



Standalone Redis 설치(테스트 환경용)



http://smallgiant.tistory.com/71



Session 설정


@Configuration
@EnableRedisHttpSession
public class SessionConfig extends AbstractHttpSessionApplicationInitializer {

}



application.yml


spring:
profiles: local
redis:
host: localhost
port: 6379
---
spring:
profiles: test
redis:
host: 테스트서버_아이피
port: 6379



세션이 저장됐는지 확인



댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/03   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
글 보관함