We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
도중에 변경 될 일이 없는 데이터베이스 조회 값 자주 호출되는 데이터
JSR
⇒ 일부 데이터 손실에 영향을 받지 않는 경우(캐시로만 사용할 때), RDB
⇒ 장애 상황 직전까지의 모든 데이터가 보장되어야 할 경우, AOF
⇒ 강력한 내구성이 필요한 경우, RDB + AOF
⇒ 레디스는 일반적으로 AOF와 RDB를 동시에 사용하여 데이터를 백업한다.
설정 순서
maven 설정
application.properties에 추가
host, port 설정
Redis Config 추가
RedisConnectionFactory 빈으로 등록
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency>
@Bean public RedisConnectionFactory redisConnectionFactory() { RedisStandaloneConfiguration redisStandaloneConfiguration = new RedisStandaloneConfiguration(); redisStandaloneConfiguration.setHostName(redisProperties.getHost()); redisStandaloneConfiguration.setPort(redisProperties.getPort()); redisStandaloneConfiguration.setPassword(redisProperties.getPassword()); redisStandaloneConfiguration.setDatabase(redisProperties.getDatabase()); return new LettuceConnectionFactory(redisStandaloneConfiguration); }
RedisStandaloneConfiguration : Redis 단독 구성을 나타냅니다. 호스트, 포트, 비밀번호, 데이터베이스 등의 설정을 관리한다.
Lettuce는 Redis를 위한 자바 기반 비동기 클라이언트 라이브러리로, 높은 성능과 확장성을 제공한다.
Spring Data Redis는 다양한 Redis 클라이언트 라이브러리를 지원하며, 그 중 하나로 Lettuce를 사용할 수 있다.
LettuceConnectionFactory는 RedisConnectionFactory 인터페이스를 구현하고 있다.
RedisConnectionFactory 인터페이스는 Spring Data Redis 에서 사용하는 추상화된 연결 팩토리입니다.
LettuceConnectionFactory를 사용하여 Redis 서버와의 연결을 설정을 한다.
RedisTemplate
@Bean public <T> RedisTemplate<String, T> redisTemplate() { RedisTemplate<String, T> redisTemplate = new RedisTemplate<>(); redisTemplate.setKeySerializer(new StringRedisSerializer()); redisTemplate.setValueSerializer(new GenericJackson2JsonRedisSerializer()); redisTemplate.setHashKeySerializer(new StringRedisSerializer()); redisTemplate.setConnectionFactory(redisConnectionFactory()); return redisTemplate; }
RedisTemplate는 Spring Boot 에서 Redis와 상호 작용하는데 사용된다.
redisTemplate.setKeySerializer(new StringRedisSerializer()); ->
redisTemplate.setValueSerializer(new GenericJackson2JsonRedisSerializer());
redisTemplate.setHashKeySerializer(new StringRedisSerializer());
redisTemplate.setConnectionFactory(redisConnectionFactory());
GenericJackson2JsonRedisSerializer가 custom한 ObjectMapper를 사용할 때는 다르다?
Object mapper는 기본적으로 직렬화/ 역직렬화 시 class type 정보를 포함하지 않기 때문에 직려화된 데이터는 type 정보가 존재하지 않는다
역직렬화 시에도 objectMapper가 type 정보를 모른 채 역직렬화를 진행하게 되고 기본 타입인 LinkedHashMap 으로 역직렬화 된다.
ObjectMapper에 activeDefaultTyping() 을 통하여 class type 을 함께 직렬화/역직렬화 하도록 설정해야한다.
ObjectMapper.DefaultTyping.NON_FINAL -> 객체의 유형 정보를 추가하되 final 클래스가 아닌경우에만 유형 정보를 추가하도록 지정하는 것이다.
The text was updated successfully, but these errors were encountered:
hyeonjaez
No branches or pull requests
Redis
캐시
도중에 변경 될 일이 없는 데이터베이스 조회 값
자주 호출되는 데이터
스프링 부트에서의 캐시
JSR
로컬 캐시
글로벌 캐시
Redis
특징
백업
⇒ 일부 데이터 손실에 영향을 받지 않는 경우(캐시로만 사용할 때), RDB
⇒ 장애 상황 직전까지의 모든 데이터가 보장되어야 할 경우, AOF
⇒ 강력한 내구성이 필요한 경우, RDB + AOF
⇒ 레디스는 일반적으로 AOF와 RDB를 동시에 사용하여 데이터를 백업한다.
스프링부트 redis
설정 순서
maven 설정
application.properties에 추가
host, port 설정
Redis Config 추가
RedisConnectionFactory 빈으로 등록
실습
RedisStandaloneConfiguration : Redis 단독 구성을 나타냅니다. 호스트, 포트, 비밀번호, 데이터베이스 등의 설정을 관리한다.
Lettuce는 Redis를 위한 자바 기반 비동기 클라이언트 라이브러리로, 높은 성능과 확장성을 제공한다.
Spring Data Redis는 다양한 Redis 클라이언트 라이브러리를 지원하며, 그 중 하나로 Lettuce를 사용할 수 있다.
LettuceConnectionFactory는 RedisConnectionFactory 인터페이스를 구현하고 있다.
RedisConnectionFactory 인터페이스는 Spring Data Redis 에서 사용하는 추상화된 연결 팩토리입니다.
LettuceConnectionFactory를 사용하여 Redis 서버와의 연결을 설정을 한다.
RedisTemplate
RedisTemplate는 Spring Boot 에서 Redis와 상호 작용하는데 사용된다.
redisTemplate.setKeySerializer(new StringRedisSerializer()); ->
redisTemplate.setValueSerializer(new GenericJackson2JsonRedisSerializer());
redisTemplate.setHashKeySerializer(new StringRedisSerializer());
redisTemplate.setConnectionFactory(redisConnectionFactory());
redis에 객체(dto) 를 저장할때
1. Jackson2JsonRedisSerializer
2. StringRedisSerializer
3. GenericJackson2JsonRedisSerializer
하지만!
GenericJackson2JsonRedisSerializer가 custom한 ObjectMapper를 사용할 때는 다르다?
Object mapper는 기본적으로 직렬화/ 역직렬화 시 class type 정보를 포함하지 않기 때문에
직려화된 데이터는 type 정보가 존재하지 않는다
역직렬화 시에도 objectMapper가 type 정보를 모른 채 역직렬화를 진행하게 되고 기본 타입인 LinkedHashMap 으로 역직렬화 된다.
ObjectMapper에 activeDefaultTyping() 을 통하여 class type 을 함께 직렬화/역직렬화 하도록 설정해야한다.
ObjectMapper.DefaultTyping.NON_FINAL -> 객체의 유형 정보를 추가하되 final 클래스가 아닌경우에만 유형 정보를 추가하도록 지정하는 것이다.
The text was updated successfully, but these errors were encountered: