안녕하세요! 해당 강의를 통해 redis pipeline과 lua script 활용 법을 눈으로 보고 배울 수 있어서 재밌게 수강하고 있습니다. AsyncPERStrategy() 메서드를 통해 랜덤한 확률로 레디스의 캐시 데이터를 업데이트 하는 것으로 이해하였습니다. 캐시 데이터를 업데이트를 비동기적으로 처리를 위해 프록시 기반 AOP로 동작하는 @Async 어노테이션을 활용하셨는데, 해당 메서드를 내부호출 함으로써 비동기 처리가 안되는 것으로 예상됩니다! 혹시 제가 잘못 알고있을 수도 있으니 확인 부탁드립니다!
안녕하세요. 강의 잘 듣고 있습니다. 강의를 들으면서 몇가지 질문이 있어서 남깁니다 1. CacheManager + @Cacheable 과 같은 어노테이션으로 레디스 캐싱을 쓰는 방법은 실제 근무했던 기업에서 많이 사용하는 방법인가요? - 위의 질문의 요지는 말 그대로 Template를 사용한 방법과 CacheManager가 제공하는 어노테이션를 활용한 경우가 많은지 궁금합니다 - 위와 관련해서 한가지 더 질문 드리자면, 보통 값을 저장할 때 객체를 직렬화해서 저장하게 되는 경우가 많은데, 수백개가 넘는 객체를 모두 정의할 수 없는 환경에서 GenericJackson2JsonRedisSerializer를 사용하는 것으로 알고 있습니다. 하지만, 이런 경우에는 다른 서버에서는 패키지 구조가 맞지 않아서 사용하지 못하는데 이런 경우에는 어떻게 하나요? 2. 리스트 결과물 (ex. 00 목록 조회 등)은 보통 어떤 자료구조를 사용하나요?
RedisConfig 클래스에서 @Bean을 이용해서 @Bean public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory factory) { RedisTemplate<String, Object> redis = new RedisTemplate<>(); redis.setConnectionFactory(factory); redis.setKeySerializer(new StringRedisSerializer()); redis.setHashKeySerializer(new StringRedisSerializer()); redis.setHashValueSerializer(new StringRedisSerializer()); redis.setValueSerializer(new StringRedisSerializer()); return redis; } 해당 코드를 통해 RedisTemplate를 빈으로 등록한걸 확인했는데요. 근데 왜 RedisCommon 클래스 쪽에선 해당 Bean을 사용하지 않고 RedisTemplate<String,String> 을 사용하나요? Bean으로 등록한건 RedisTemplate<String,Object>인데 그럼 스프링에서는 만들어 놓은 RedisTemplate<String,Object>을 사용하지 않고 새로운 RedisTemplate<String,String>을 만들어서 주입하는 걸로 알고있습니다. 저 Bean으로 등록해놓은 RedisTemplate<String,Object>의 직렬화 및 역직렬화에 사용될 객체를 집어넣어주는 코드는 Redis 전체 설정인가요?? 저렇게 하면 RedisTemplate<String,String>에도 적용이 되는건가요?? - 강사님의 이론편을 안봐서 제가 이해가 잘 안가는 것 일 수도 있습니다 ㅠㅠ 실제로 RedisConfig 클래스에서 정의한 RedisTemplate<String, Object>와 RedisString에서 정의한 RedisTemplate<String,String>의 해시코드를 비교해봤는데 서로 다른 값이 나왔습니다. @Service @RequiredArgsConstructor public class RedisString { private final RedisTemplate<String, String> template; private final RedisTemplate<String, Object> template2; // RedisTemplate@544e3679 RedisConfig에서 스프링의 빈 초기화시 로그 // RedisTemplate@544e3679 RedisString에서 찍은 template2 로그 // StringRedisTemplate@6d5bb599 RedisString에서 찍은 template 로그