1.프로젝트에서 레디스 사용 영역

1.1 레디스 사용 영역

1.로그인,로그아웃 서비스
2.AI 챗봇 서비스
3.캐시

등등에 사용할 레디스를 미리 설정한다.

2.설정

2.1 gradle

/* Redis */
	implementation 'org.springframework.boot:spring-boot-starter-data-redis'
	implementation 'io.lettuce.core:lettuce-core' // 기본 클라이언트

2.2 application.properties

#Redis
spring.data.redis.host=localhost
spring.data.redis.port=6379
spring.data.redis.password=
spring.data.redis.timeout=

2.3 RedisConfig.java

package website.server.Global.Config;

import org.springframework.context.annotation.Bean;
import org.springframework.data.redis.connection.RedisConnectionFactory;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.serializer.GenericJackson2JsonRedisSerializer;
import org.springframework.data.redis.serializer.StringRedisSerializer;

public class RedisConfig {

    @Bean
    public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory connectionFactory) {
        RedisTemplate<String, Object> template = new RedisTemplate<>();
        template.setConnectionFactory(connectionFactory);

        // Key와 Value의 직렬화 설정
        template.setKeySerializer(new StringRedisSerializer());
        template.setValueSerializer(new GenericJackson2JsonRedisSerializer());

        return template;
    }
    
}

위와 같이 사용할 redisTemplete를 미리 빈으로 등록해 놓는다.
추후 커스터마이징 또한 가능하다.

redistemplete는 레디스와 상호작용할 수 있는 다양한 메서드를 제공하며, 레디스에 데이터를 저장하거나 가져오는 등의 작업을 쉽게할 수 있다.

RedisConnectionFactory는 Redis와의 연결을 설정하는 인터페이스입니다. 이 인터페이스는 Redis의 연결을 처리하는 ConnectionFactory 구현체에 의해 제공됩니다. 보통 Lettuce나 Jedis를 사용하여 Redis와 연결을 만듭니다.

setConnectionFactory(connectionFactory)

RedisTemplate에 연결 팩토리를 설정합니다. connectionFactory는 Redis에 연결을 생성하는 데 필요한 정보를 제공하는 객체입니다.

2.4 key와 value의 직렬화

Key 직렬화: template.setKeySerializer(new StringRedisSerializer())는 Redis의 Key를 직렬화할 때 StringRedisSerializer를 사용하도록 설정합니다.
이는 문자열을 Redis에서 적절히 처리할 수 있도록 직렬화하는 방법입니다.

Value 직렬화: template.setValueSerializer(new GenericJackson2JsonRedisSerializer())는 Redis의 Value를 직렬화할 때 GenericJackson2JsonRedisSerializer를 사용하여 JSON 형태로 직렬화합니다.
GenericJackson2JsonRedisSerializer는 자바 객체를 JSON 문자열로 변환해 Redis에 저장하고, Redis에서 가져올 때 JSON을 자바 객체로 역직렬화합니다.

profile
내가 있는 그 조직에서 가장 성실하기만 하자

0개의 댓글