docker에 redis 설치후, 인텔리제이 연동까지 해보기

Terror·2024년 9월 29일
0

redis images 다운하기

docker pull redis

  • 이미지 다운 성공!

redis 컨테이너 만들어주기

docker run --name redis_container --rm -it -d -p 6379:6379 redis

  • 잘 설치된 모습을 볼 수 있다

redis cli 들어가보기

docker exec -it redis_container redis-cli

  • 잘 들어가지는 모습을 볼 수 있다

인텔리제이 설정하기

  • 먼저, Redis의 세팅을 위한 .env 설정을 해보자
REDIS_PORT=6379
REDIS_HOST=localhost
  • application.yml 형식은 아래와 같다
server:
  port: ${SERVER_PORT}
# DB config
spring:
  config:
    import: optional:file:.env[.properties]
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://${MYSQL_HOST}:${MYSQL_PORT}/${MYSQL_DB_NAME}?serverTimezone=Asia/Seoul
    username: ${MYSQL_NAME}
    password: ${MYSQL_PASSWORD}
  # DB update
  jpa:
    hibernate:
      ddl-auto: update
    # sql
    properties:
      hibernate:
        show_sql: true
        format_sql: true
  data:
    redis:
      port: ${REDIS_PORT}
      host: ${REDIS_HOST}
jwt:
  secret_key: ${JWT_SECRET_KEY}
  expired_time: ${JWT_EXPIRED_TIME}

config로 빈등록까지 해주자

@Configuration
public class RedisConfig {
    @Bean
    public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory cnf) {
        RedisTemplate<String, Object> template = new RedisTemplate<>();
        template.setConnectionFactory(cnf);
        // key값을 String으로 직렬화 가능하게 하겠다는뜻
        template.setKeySerializer(new StringRedisSerializer());
        // value값을 Object로 직렬화 가능하게 하겠다는뜻
        template.setValueSerializer(new GenericJackson2JsonRedisSerializer());
        return template;
    }
}

실제 사용해보자!

    @Transactional
    public ApiResponse signup(SignUpDto signUpDto) {
        Member member = Member.fromSignUpDto(signUpDto);
        redisSingUp(signUpDto);
        String hashedPassword = pe.encode(member.getPassword());
        member.updatePassword(hashedPassword);
        authRepository.save(member);
        return new ApiResponse(ApiResponseMemberEnum.MEMBER_SAVE_SUCCESS);
    }
  • RedisSignup
    private void redisSingUp(SignUpDto signUpDto) {
        String username = signUpDto.getUsername();
        String password = signUpDto.getPassword();
        String email = signUpDto.getEmail();
        String author = signUpDto.getAuthor();
        String role = signUpDto.getRole().toString();
        redisTemplate.opsForValue().set("username",username);
        redisTemplate.opsForValue().set("password",password);
        redisTemplate.opsForValue().set("email",email);
        redisTemplate.opsForValue().set("author",author);
        redisTemplate.opsForValue().set("role",role);
    }

포스트맨 API 호출

Redis Cli에서 확인해보자

  • 잘 저장되는것을 확인 할 수 있다

마치며

  • 오늘은 간단하게 연결방법과 쓰임방법에 대해 알아보았다
  • 이후 Redis공부를 더해보면서 어떤식으로 더 사용되는지, 언제 DB에 저장되는지 확인해보아야겠다
profile
테러대응전문가

0개의 댓글