why redis?
FAST
인메모리 DB로 매우 빠르게 serch/update/delete가 가능하다
EASY
가장 큰 이유는 Redis는 TTL(Time-To-Live) 기능을 제공하기 때문에 데이터의 만료 시간을 설정할 수 있기 때문
서버에 저장할 Refresh Token의 만료 시간을 쉽게 설정
사용 예시
보안과 사용자 경험은 반비례함으로 적절한 합의점을 찾아야 한다
(보안) Session & AR,RT 서버 관리 >> RT 서버 관리 >> 서버 관리 X (사용자 경함)
참고 블로그
https://9keyyyy.tistory.com/48
https://velog.io/@backtony/Spring-Redis-연동하기
https://sjh9708.tistory.com/86
https://velog.io/@wisdom-one/Spring-Boot와-Redis-간단하게-연동하기
@RequiredArgsConstructor
@Configuration
@EnableRedisRepositories
public class RedisConfig {
private final RedisProperties redisProperties;
// RedisProperties로 yaml에 저장한 host, port를 연결
@Bean
public RedisConnectionFactory redisConnectionFactory() {
return new LettuceConnectionFactory(redisProperties.getHost(), redisProperties.getPort());
}
// serializer 설정으로 redis-cli를 통해 직접 데이터를 조회할 수 있도록 설정
// 아니면 key, value 모두 byte[]로 해야함
@Bean
public RedisTemplate<String, Object> redisTemplate() {
**RedisTemplate<String, Object> redisTemplate = new RedisTemplate<>();**
**redisTemplate.setKeySerializer(new StringRedisSerializer());
redisTemplate.setValueSerializer(new StringRedisSerializer());**
redisTemplate.setConnectionFactory(redisConnectionFactory());
return redisTemplate;
}
}