DataBase
SpringBoot Redis 설정(Window)
조민욱
2024. 12. 10. 19:12
1. Redis 설치를 진행해준다. ( 링크에서 msi 파일을 다운받아준다.)
https://github.com/microsoftarchive/redis/releases
Releases · microsoftarchive/redis
Redis is an in-memory database that persists on disk. The data model is key-value, but many different kind of values are supported: Strings, Lists, Sets, Sorted Sets, Hashes - microsoftarchive/redis
github.com
2. 설치 후 파일 내부에 redis-cil.exe를 클릭해서 실행해준다.
3. 실행된 cmd에 접속해서 ping을 입력했을 때 PONG 나오면 정상 설치 연결
4. Spring boot 연결
data:
redis:
host: localhost
port: 6379
5. Bean 설정
@Configuration
@RequiredArgsConstructor
@EnableCaching
public class RedisConfig {
@Bean
public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory connectionFactory) {
RedisTemplate<String, Object> template = new RedisTemplate<>();
template.setConnectionFactory(connectionFactory);
// JSON 직렬화 설정
ObjectMapper objectMapper = new ObjectMapper();
objectMapper.findAndRegisterModules();
GenericJackson2JsonRedisSerializer jsonSerializer
= new GenericJackson2JsonRedisSerializer(objectMapper);
template.setKeySerializer(new StringRedisSerializer());
template.setValueSerializer(jsonSerializer);
template.setHashKeySerializer(new StringRedisSerializer());
template.setHashValueSerializer(jsonSerializer);
template.afterPropertiesSet();
return template;
}
@Bean
public RedisCacheManager cacheManager(RedisConnectionFactory connectionFactory) {
ObjectMapper objectMapper = new ObjectMapper();
objectMapper.findAndRegisterModules();
// JSON 직렬화 설정
GenericJackson2JsonRedisSerializer jsonSerializer
= new GenericJackson2JsonRedisSerializer(objectMapper);
// RedisCacheConfiguration 설정
RedisCacheConfiguration cacheConfig = RedisCacheConfiguration.defaultCacheConfig()
.serializeKeysWith(
RedisSerializationContext.SerializationPair.fromSerializer(new StringRedisSerializer()))
.serializeValuesWith(
RedisSerializationContext.SerializationPair.fromSerializer(jsonSerializer));
return RedisCacheManager.builder(connectionFactory)
.cacheDefaults(cacheConfig)
.build();
}
}
6. 캐싱이 필요한 Service 로직에 어노테이션을 추가하여 설정을 진행해준다.
@Cacheable(value = "stores", key = "'list_')
7. 애플케이션을 실행하고 redis에 다음과 같이 체크
keys *
"stores::list_
== 해당 목록이 보여진다면
GET stores::list_
== 다음을 입력해서 저장된 데이터를 확인할 수 있다