본문 바로가기
Spring

Spring Data Redis 로 Redis 연동

by 하르싼 2022. 9. 20.
반응형
개발환경
Spring Boot 2.7.0
JDK 1.8
Build Maven

https://devhj.tistory.com/24?category=721156

 

윈도우10 Redis 설치 및 기본 설정

1.Redis란? 레디스(Redis)는 Remote Dictionary Server의 약자로서[4], "키-값" 구조의 비정형 데이터를 저장하고 관리하기 위한 오픈 소스 기반의 비관계형 데이터베이스 관리 시스템(DBMS)이다. 2009년 살

devhj.tistory.com

프로젝트생성 (의존성 : Spring data Redis)

프로젝트생성
maven dependency

application.yml

spring:
  redis:
    lettuce:
      pool:
        max-active: 10
        max-idle: 10
        min-idle: 2
    port: 6379
    host: 127.0.0.1
    password: 'aaaa'

RedisConfig.java

@Configuration
public class RedisConfig {
    @Value("${spring.redis.host}")
    private String redisHost;
    @Value("${spring.redis.port}")
    private String redisPort;
    @Value("${spring.redis.password}")
    private String redisPassword;

    @Bean
    public RedisConnectionFactory redisConnectionFactory() {
        RedisStandaloneConfiguration redisStandaloneConfiguration = new RedisStandaloneConfiguration();
        redisStandaloneConfiguration.setHostName(redisHost);
        redisStandaloneConfiguration.setPort(Integer.parseInt(redisPort));
        redisStandaloneConfiguration.setPassword(redisPassword);
        return new LettuceConnectionFactory(redisStandaloneConfiguration);
    }

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

        return redisTemplate;
    }
}

RedisController.java

@RestController
public class RedisController {

    @Autowired
    private RedisTemplate<String, String> redisTemplate2;

    @GetMapping("/")
    public String test(){
        return "test";
    }

    @GetMapping("/redisTest")
    public ResponseEntity<?> addRedisKey() {
        ValueOperations<String, String> vop = redisTemplate2.opsForValue();
        vop.set("yellow", "banana");
        vop.set("red", "apple");
        vop.set("green", "watermelon");
        return new ResponseEntity<>(HttpStatus.CREATED);
    }

    @GetMapping("/redisTest/{key}")
    public ResponseEntity<?> getRedisKey(@PathVariable String key) {
        ValueOperations<String, String> vop = redisTemplate2.opsForValue();
        String value = vop.get(key);
        return new ResponseEntity<>(value, HttpStatus.OK);
    }
}

 

프로젝트 구조

서버를 구동후 예제처럼 했으면 localhost:8080/redisTest 로 접속하게되면 

redis 에 값을 set 하게되고 redis-cli 에서 keys * 명령어를 통해 아래처럼 확인이 가능하다.

반응형

댓글