Today
-
Yesterday
-
Total
-

ABOUT ME

-

  • Redis(레디스) | Spring Boot 프로젝트 연동하기
    ▼ DataBase, NoSQL/Redis 2021. 11. 25. 11:45
    반응형

    [DB, NoSQL] - Windows 10 | 레디스(Redis) 설치 및 명령어

    [DB, NoSQL] - Windows 10 | 레디스(Redis) 비밀번호 설정

     

    📌 구성환경

    SpringBoot 2.5.6, Redis 3.2.100

     

    build.gradle

    implementation 'org.springframework.boot:spring-boot-starter-data-redis'

     

    application.yml (properties)

    spring:
      redis:
        lettuce:
          pool:
            max-active: 5 #pool에 할당될 수 있는 커넥션 최대수 (음수로 하면 무제한)
            max-idle: 5 #pool의 "idle" 커넥션 최대수 (음수로 하면 무제한)
            min-idle: 2 #풀에서 관리하는 idle 커넥션의 최소 수 대상 
        host: 127.0.0.1
        port: 6379
        password: redisPass

     

    Configuration (RedisConfig.java)

    레디스(Redis) 연결을 위한 ConnectionFactory 설정과 실제 사용을 위한 Template을 구성한다.

     

    package com.artmoa.member.config;
    
    import org.springframework.beans.factory.annotation.Value;
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;
    import org.springframework.data.redis.connection.RedisConnectionFactory;
    import org.springframework.data.redis.connection.RedisStandaloneConfiguration;
    import org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory;
    import org.springframework.data.redis.core.RedisTemplate;
    import org.springframework.data.redis.serializer.StringRedisSerializer;
    
    @Configuration
    public class RedisConfig {
    
        @Value("${spring.redis.host}")
        private String host;
    
        @Value("${spring.redis.port}")
        private int port;
    
        @Value("${spring.redis.password}")
        private String password;
    
        @Bean
        public RedisConnectionFactory redisConnectionFactory() {
            RedisStandaloneConfiguration redisStandaloneConfiguration = new RedisStandaloneConfiguration();
            redisStandaloneConfiguration.setHostName(host);
            redisStandaloneConfiguration.setPort(port);
            redisStandaloneConfiguration.setPassword(password);
            return new LettuceConnectionFactory(redisStandaloneConfiguration);
        }
    
        @Bean
        public RedisTemplate<String, Object> redisTemplate() {
            RedisTemplate<String, Object> redisTemplate = new RedisTemplate<>();
            redisTemplate.setConnectionFactory(redisConnectionFactory());
            redisTemplate.setKeySerializer(new StringRedisSerializer());
            redisTemplate.setValueSerializer(new StringRedisSerializer());
            return redisTemplate;
        }
    }

     

    Util Class (redisUtil.java)

    데이터 생성, 조회 테스트를 위한 메서드를 생성한다.
    데이터 생성 시 만료 시간을 설정할 수 있으며 시간이 만료될 경우 자동으로 소멸된다.

     

    import org.springframework.data.redis.core.RedisTemplate;
    import org.springframework.data.redis.core.ValueOperations;
    
    public class redisUtil {
      @Autowired
      private RedisTemplate redisTemplate;
      
      public void redisSetTest() {
        // Redis Template
        ValueOperations<String, String> vop = redisTemplate.opsForValue();
        // Redis Set Key-Value
        vop.set("key1", "data1"); // 만료제한 없이 생성
        vop.set("key-expire", "data-expire", Duration.ofSeconds(60)); // 60초 뒤에 해당 키가 만료되어 소멸된다.
      }
      
      public void redisGetTest() {
        // Redis Template
        ValueOperations<String, String> vop = redisTemplate.opsForValue();
        String redisValue = vop.get("key1");
        String redisExpireValue = vop.get("key-expire");
      }
    }

     

    redis-cli.exe

    등록한 데이터를 redis-cli에서도 확인할 수 있다.
    ttl [key] 명령어를 통해 남은 만료 시간을 확인할 수 있다.

     

     

    반응형

    댓글

Designed by Tistory.