설정
라이브러리 추가
스프링 부트에서는 spring data redis 라이브러리가 필요하므로 build.gradle 에 의존성을 추가해준다.
implementation 'org.springframework.boot:spring-boot-starter-data-redis'
이를 통해 Lettuce, Jedis라는 두개의 오픈소스 라이브러리를 사용할 수 있다.
Lettuce는 별도 설정 필요x, Jedis 는 별도의 의존성이 필요하다.
Redis를 설정하는 두가지 방식
spring data redis가 제공하는 방법은 2가지이다.
- RedisTemplate
- RedisRespository
spring data redis에 내장되어 있는 lettuce를 사용하고, RedisTemplate을 설정해보자.
Config 파일
@RequiredArgsConstructor
@Configuration
@EnableRedisRepositories
public class RedisRepositoryConfig {
@Value("${spring.redis.host}")
private String host;
@Value("${spring.redis.port}")
private int port;
// Lettuce 사용
@Bean
public RedisConnectionFactory redisConnectionFactory(){
return new LettuceConnectionFactory(host,port);
}
@Bean
public RedisTemplate<String, Object> redisTemplate() {
RedisTemplate<String, Object> redisTemplate = new RedisTemplate<>();
redisTemplate.setConnectionFactory(redisConnectionFactory());
redisTemplate.setKeySerializer(new StringRedisSerializer());
redisTemplate.setValueSerializer(new StringRedisSerializer());
return redisTemplate;
}
}
1. LettuceConnectionFactory 빈 등록
redis 호스트와 포트를 사용하여 LettuceConnectionFactory 생성하여 빈으로 등록해준다.
Lettuce는 동일한 thread-safe connection을 공유한다.
https://my-lifemap.tistory.com/141
2. RedisTemplate 빈 등록
RedisTemplate을 사용할 때 Spring-Redis 간 데이터 직렬화, 역직렬화 시, Jdk 직렬화 방식이다.
(자바의 직렬화 역직렬화는 따로 써야겠음..)
redis-cli 로 데이터를 볼때 알 수 없는 형태로 출력된다. 그렇기 때문에 setKeySerializer, setValueSerializer 설정을 해주었다.
➕ 유용한 메서드
- opsForValue : String을 역/직렬화 해줌
- opsForList : List를 역/직렬화 해줌
- opsForSet : Set를 역/직렬화 해줌
- opsForZSet : ZSet을 역/직렬화 해줌
- opsForHash : Hash를 역/직렬화 해줌
참고
'SPRING' 카테고리의 다른 글
RedisRepository 이용하여 refreshToken 관리하기 (1) | 2024.02.07 |
---|---|
[Swagger] RequestHeader 설정하기 (0) | 2024.01.29 |
[Feign Client] 정리 및 사용법 (0) | 2024.01.25 |
[QueryDSL] 정리 및 spring boot에서 사용법 (0) | 2024.01.21 |
Swagger 사용방법(feat.springdoc) (1) | 2023.12.30 |