있을 유, 참 진

[Redis] 스프링부트 Redis 설정 및 적용하기 본문

Redis

[Redis] 스프링부트 Redis 설정 및 적용하기

U_ma 2023. 4. 23. 21:39

Dependency 추가 & Yaml 파일 설정

💡 password를 설정했다면 yml 파일에 password 또한 설정해준다.
// Redis
implementation 'org.springframework.boot:spring-boot-starter-data-redis'
#Redis 설정
spring:
  redis:
    lettuce:
      pool:
        max-active: 5
        max-idle: 5
        min-idle: 2
    host: localhost
    port: 6379
    password: 1234

Redis Configuration 설정

@Configuration
@EnableRedisRepositories
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 redisConfiguration = new RedisStandaloneConfiguration();
        redisConfiguration.setHostName(host);
        redisConfiguration.setPort(port);
        redisConfiguration.setPassword(password);
        LettuceConnectionFactory lettuceConnectionFactory = new LettuceConnectionFactory(redisConfiguration);
        return lettuceConnectionFactory;
    }

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

Redis 테스트

💡 가져오고 싶은 Redis의 Key를 넣었을 때 가져오는 GET Api 생성, 해당 Redis에는 ‘testKey1:testValue1’이라는 데이터가 들어가 있다.
@RequiredArgsConstructor
@RequestMapping("/redis")
@RestController
public class RedisController {
    private final RedisTemplate<String, String> redisTemplate;

    @GetMapping("/{key}")
    public ResponseEntity<Object> getRedisKey(@PathVariable String key) {
        ValueOperations<String, String> valueOperations = redisTemplate.opsForValue();
        String value = valueOperations.get(key);
        return ResponseEntity.status(HttpStatus.OK).body(value);
    }
}

결과확인

💡 `localhost/redis/testKey1`이라는 주소로 접근했을 때 아래와 같은 값을 받아온다.
testValue1

'Redis' 카테고리의 다른 글

[Redis] Docker Redis 설치 및 운영  (0) 2023.04.22
Comments