환경세팅

[Redis] Redis연동 - SpringBoot 연동

2025. 2. 13. 12:19

1. RedisConfig

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.connection.RedisConnectionFactory;
import org.springframework.data.redis.core.RedisTemplate;

@Configuration
public class RedisConfig {

	@Bean
	RedisTemplate<?, ?> redisTemplate(RedisConnectionFactory connectionFactory) {
		RedisTemplate<?, ?> template = new RedisTemplate<>();
		template.setConnectionFactory(connectionFactory);
		return template;
	}
}

spring-boot-starter-data-redis 의존성이 추가되면 Spring Boot가 자동으로 redisConfig와 Lettuce를 기본으로 ConnectionFactory를 생성

별도로 RedisConfig나 RedisConnectionFactory는 Key, Value 직렬화 방식 변경 (기본값은 JdkSerializationRedisSerializer), 다중 RedisTemplate 설정, 특정 Connection 설정 추가할때만 설정

 

 

2. application.properties

# redis 설정
spring.data.redis.host=localhost
spring.data.redis.port=6379
spring.data.redis.password=비밀번호

redis에서 로컬 접속이 가능하도록 설정이되어야 localhost 사용 가능

password는 별도 비밀번호 설정시 추가

 

3. redisTemplate 사용부분

// Refresh Token 생성
public void refreshToken(String id) {

    String refreshToken = Jwts.builder().id(id).issuedAt(new Date())
            .expiration(new Date(System.currentTimeMillis() + refreshTokenValidTime)).signWith(privateKey)
            .compact();

    // Redis에 Refresh Token 저장 (key는 id:{id}:refresh, value는 refreshToken)
    redisTemplate.opsForValue().set("id:" + id + ":refresh", refreshToken, 7, TimeUnit.DAYS);
}

// Refresh Token 불러오기
public String getRefreshToken(String accessToken) {
    try {
        Claims claims = getToken(accessToken);
        String id = claims.getId();
        String redisToken = redisTemplate.opsForValue().get("id:" + id + ":refresh");

        return redisToken;
    } catch (JwtException e) {
        log.error("getRefreshToken JwtException ::: {}", e.getMessage());
        return null;
    }
}

 

'환경세팅' 카테고리의 다른 글

[Redis] Redis연동 - Docker에 세팅  (0) 2025.02.12
[React] TypeScript 설정  (1) 2024.03.26
[React-Native] 안드로이드 세팅  (4) 2024.01.04
[React-Native] 기본 세팅  (3) 2023.10.06
[Vue] 뷰 기본 세팅  (2) 2023.09.02