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 |