😊프로젝트를 진행중 redis
를 스프링에 접목 시키는 방법에 대해서 알아보았습니다. 스프링에 redis
를 적용하는 방법은 아래와 같습니다. (redis
가 가동되고 있다는 가정하에 진행하겠습니다.)
implementation 'org.springframework.boot:spring-boot-starter-data-redis'
spring:
data:
redis:
port: 6379
host: localhost
위 설정은 기본값이므로 굳이 적지 않으셔도 됩니다.
위 설정외에도 다양한 기능을 넣을 수 있습니다.
@Bean
public RedisConnectionFactory redisConnectionFactory() {
return new LettuceConnectionFactory();
}
@Bean
public RedisTemplate<?,?> redisTemplate(RedisConnectionFactory redisConnectionFactory) {
RedisTemplate<?, ?> template = new RedisTemplate<>();
template.setConnectionFactory(redisConnectionFactory);
template.setKeySerializer(new StringRedisSerializer());
template.setValueSerializer(new StringRedisSerializer());
template.setHashKeySerializer(new StringRedisSerializer());
template.setHashValueSerializer(new StringRedisSerializer());
return template;
}
위 설정 파일의 경우에도 직접 설정을 안 해주셔도 사용가능합니다.
@RequiredArgsConstructor
@RestController
@Slf4j
public class TestController {
@PostMapping("/string")
public String save1(String id) {
redisTemplate.opsForValue().set("user"+id,id);
return id;
}
@GetMapping("/string")
public Set save2() {
return redisTemplate.keys("*");
}
}
opsForValue
의 set
을 통해 key, value를 넣을 수 있습니다.
가져오는 경우 get
을 이용하면 되고 여기서는 keys
를 통해 pattern에 맞는 key들을 가져왔습니다.
id가 233인 값을 redis
에 넣고 /string으로 get요청을 보내보면 아래와 같이 user233이라는 키값이 생기는 것을 확인 할 수 있습니다.