Spring Data Redis에서 기본적으로 제공하는 Redis Client 객체.
주요 특징 3가지
Spring Data Redis Lettuce와 Jedis 두개의 클라이언트를 제공한다. 기본적으로 Lettuce를 사용하게 되는데, Jedis로 설정해서 사용도 가능하다.
flowchart LR
RedisTemplate --> Lettuce
RedisTemplate -.-> Jedis
Lettuce --> Redis
Jedis -.-> Redis
// Maven
<dependencies>
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-redis</artifactId>
<version>{version}</version>
</dependency>
</dependencies>
// gradle
implementation 'org.springframework.boot:spring-boot-starter-data-redis'
spring:
data:
redis:
host: 127.0.0.1
port: 6379
@Bean
public StringRedisTemplate stringRedisTemplate(RedisConnectionFactory redisConnectionFactory) {
StringRedisTemplate template = new StringRedisTemplate();
template.setConnectionFactory(redisConnectionFactory);
return template;
}
사용 예시
public String getUserEmail(Long id) {
// 레디스에 먼저 찾기
String email = redisTemplate.opsForValue().get("users:%s:email".formatted(id));
if(email != null)
return email;
// 없으면 DB에서 조회
email = userRepository.findById(id).orElse(User.builder().build()).getEmail();
redisTemplate.opsForValue().set("users:%s:email".formatted(id), email, Duration.ofSeconds(30));
return email;
}