Spring Boot 프로젝트 Docker Redis 연동하기

박북velog·2023년 12월 22일

Docker 로 Redis image & container 생성하기

1. Docker Redis image 받기

  • docker pull redis 로 redis 이미지 생성
  • docker images 로 더블 체크 꼭 하기 !

2. Redis container 생성하기

  • docker run -p <port>:6379 --name <containerName> -d redis:latest --requirepass <password>

3. Redis 실행

  • docker exec -i -t <containerName> redis-cli -a <password>

정상적으로 실행된다면 아 쎄 핑 유 쎄 퐁이 가능하다.

redis 출근했고이


Spring Boot 프로젝트에 Redis 연동하기

1. build.gradle dependency 추가

  • implementation 'org.springframework.boot:spring-boot-starter-data-redis' 한 줄 넣고 새로고침 꼭 하소.

2. application.properties (yml) 값 추가

  • spring.redis.host=localhost
  • spring.redis.port=6379

yml은 depth 형식으로 써주면 됩니당
이후 linux 로 docker-compose 에서 Redis 호스트 설정해줄 때,
extra_hosts:host.docker.internal:host-gateway 추가 후에
위의 host 값을 host.docker.internal 로 바꿔준다.

3. Redis Configuration

@Configuration
@RequiredArgsConstructor
@EnableRedisRepositories
public class RedisConfig {
    @Value("${spring.redis.host}")
    private String host;

    @Value("${spring.redis.port}")
    private int port;

    @Bean
    public RedisConnectionFactory redisConnectionFactory(){
        return new LettuceConnectionFactory(host, port);
    }

    @Bean
    public RedisTemplate<String, String> redisTemplate() {
        RedisTemplate<String, String> redisTemplate = new RedisTemplate<>();
        redisTemplate.setConnectionFactory(redisConnectionFactory());
        redisTemplate.setKeySerializer(new StringRedisSerializer());
        redisTemplate.setValueSerializer(new StringRedisSerializer());
        return redisTemplate;
    }
}

RedisTemplate<key, value> 는 Redis 사용 목적에 따라 들어가는 값을 자유롭게 지정해서 사용하면 되겠다.
이번 프로젝트에서 기존 계획은 친구 목록 또는 친구 요청 목록을 사용하려고 했으나, MySQL 로 해결하고 JWT 의 Refresh 토큰 저장용으로 사용한다.

profile
느리지만 끝까지 해보자구

0개의 댓글