트러블슈팅

[Spring] Redis를 통한 세션 불일치 문제 해결 (2/2)

2023. 10. 14. 21:41
목차
  1. 1. 의존성 추가 및 환경 설정
  2. 2. RedisConfig.java
  3. 3. 확인

 

실제 프로젝트에 Redis를 적용해보자

 

1. 의존성 추가 및 환경 설정

    //레디스
    implementation 'org.springframework.boot:spring-boot-starter-data-redis'
    implementation 'org.springframework.session:spring-session-core'
    implementation 'org.springframework.session:spring-session-data-redis'
spring:
  data:
    redis:
      host: 127.0.0.1
      port: 6379

build.gradle에 의존성을 추가해주고 applicaiton.yml 파일에 redis 정보를 추가한다.

 

2. RedisConfig.java

@Configuration
@EnableRedisHttpSession
public class RedisConfig {

    @Value("${spring.data.redis.host}")
    private String redisHost;

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

    @Bean
    public RedisConnectionFactory redisConnectionFactory() {
        return new LettuceConnectionFactory(redisHost, redisPort);
    }

}

@EnabledRedisHttpSession을 사용해 세션저장소로 Redis를 사용하겠다고 명시해준다.
.yml 파일에서 session:store-type=redis 라고 명시해주는 것과 동일한 기능이다.

 

.yml 파일에서 설정한 host와 port 값들을 주입해주고 레디스 연결 팩토리(RedisConnectionFactory)를 생성하여 반환한다.

💡 Lettuce vs Jedis

Redis Client의 오픈 소스는 대표적으로 Lettuce, Jedis가 있는데, 현재 프로젝트에서는 Lettuce를 사용하고 있고 Spring에서도 Lettuce를 default로 지정하고 있다.

스레드 안정성이 대표적인 이유이다. 
Jedis의 경우에는 멀티 스레드 환경에서 스레드 안정성을 보장하지 않지만, Lettuce는 netty 기반으로 멀테 스레드 환경에서 공유될 수 있다. 

 

 

3. 확인

이후 터미널 redis-cli 에서 keys \* 명령어를 통해 레디스에 저장된 모든 키 값을 확인할 수 있다.

앱 실행 후 로그인하여 키 값을 확인해보면 세션이 레디스에 저장된 것을 확인할 수 있다.

 

로그아웃을 해도 레디스에 세션 정보는 그대로 남아있는데 세션의 생명주기가 남아있기 때무이다. 세션의 만료시간이 지나면 레디스에서 세션 정보가 삭제된다. 세션 설정을 통해 만료시간을 조정할 수 있다.

 

 

 

저작자표시 (새창열림)

'트러블슈팅' 카테고리의 다른 글

[Spring] Redis 캐시 적용하기 (2/2)  (0) 2023.10.22
[Spring] Redis 캐시 적용하기 (1/2)  (1) 2023.10.19
[Spring] Redis를 통한 세션 불일치 문제 해결 (1/2)  (0) 2023.10.12
[Spring] 재고처리 동시성 이슈 해결하기 (2/2)  (0) 2023.07.22
[Spring] 재고처리 동시성 이슈 해결하기 (1/2)  (0) 2023.07.22
  1. 1. 의존성 추가 및 환경 설정
  2. 2. RedisConfig.java
  3. 3. 확인
'트러블슈팅' 카테고리의 다른 글
  • [Spring] Redis 캐시 적용하기 (2/2)
  • [Spring] Redis 캐시 적용하기 (1/2)
  • [Spring] Redis를 통한 세션 불일치 문제 해결 (1/2)
  • [Spring] 재고처리 동시성 이슈 해결하기 (2/2)
jny0
jny0
성장일기
jny0
J N Y 0
jny0
  • 분류 전체보기 (192)
    • 트러블슈팅 (6)
    • Java (22)
    • HTML, CSS , JavaScript (7)
    • MySQL, DBMS (9)
    • GIT (6)
    • 객체지향의 사실과 오해 (3)
    • 자바 ORM 표준 JPA 프로그래밍 (13)
    • 알고리즘 (114)
      • 자료구조 (59)
      • 수학 (11)
      • 정렬 (2)
      • 그리디 (3)
      • DP (4)
      • 그래프 (3)
      • 탐색 (9)
      • 재귀 (2)
      • 문자열 (9)
      • 기타 (12)
    • CS (10)

블로그 메뉴

  • 홈
  • 태그
  • 방명록
  • 글쓰기
  • 관리

공지사항

인기 글

태그

  • 스택
  • 그리디
  • codeup
  • 알고리즘
  • BFS
  • 누적합
  • Java
  • db
  • 구현
  • DP
  • JPA
  • method
  • JS
  • 프로그래머스
  • 자료구조
  • MySQL
  • 투포인터
  • 영상후기
  • 백준
  • git

최근 댓글

최근 글

hELLO · Designed By 정상우.
jny0
[Spring] Redis를 통한 세션 불일치 문제 해결 (2/2)
상단으로

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.