hanker

Redis - 설치 및 실행 (2) Spring boot 실행편 (기본) 본문

DATABASE/Redis

Redis - 설치 및 실행 (2) Spring boot 실행편 (기본)

hanker 2024. 10. 1. 12:41
반응형

설치 관련해서 이전글에 올려놨다.

https://hanke-r.tistory.com/218

 

Redis 설치 및 실행

이전 글에서는 Redis가 뭔지 왜 사용하는지에 대해서 적었었다.https://hanke-r.tistory.com/214 Redis 란..자세히 정리된 블로그들이 많아서 보다 쉽게 이해를 위한 내 의견을 적어본다.  Redis 는 Remote Dicti

hanke-r.tistory.com

 

Spring Boot 에서 Redis를 사용하려면 제일 처음으로 pom.xml에 Redis 의존성 추가를 해줘야한다.

 

<!-- Spring Boot redis -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>


<!-- Gradle -->
implementation group: 'org.springframework.boot', name: 'spring-boot-starter-data-redis', version: '3.3.4'

이렇게 직접 코드를 추가해줘도 되고, 

윈도우 기준으로 shift 2번 눌러서 Edit Starters 검색해서 열어서 redis 검색 후 추가해줘도 된다.

* <dependencies> 옆에 잎을 클릭해도 열린다.

 

 

추가 해준 후 maven 업데이트를 해주고, application.properties 또는 yml 파일에 redis 서버 접속정보를 추가한다.

 

 

spring.redis.host=Redis설치 IP
spring.redis.port=6379
# server.servlet.session.timeout=30m
# spring.redis.password=hanker

 

IP, PORT를 적어주고 밑에 Session Timeout 은 지금 당장 사용하지 않아서 주석, 비밀번호도 서버에 비밀번호 설정하지 않아서 우선 주석처리 해놨다. 만약 비밀번호 설정을 했다면 비밀번호까지 입력해줘야 한다.

 

 

설정까지 완료해줬으면 이제 Redis와 데이터를 쉽게 처리하기 위해서 Bean 등록을 해주자

conf/RedisConfig.java 파일을 하나 만들어서 작성했다.

@Configuration
public class RedisConfig {

    @Bean
    public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory redisConnectionFactory) {
        RedisTemplate<String, Object> template = new RedisTemplate<>();
        template.setConnectionFactory(redisConnectionFactory);
        // StringRedisSerializer : 키를 문자열로 처리하도록 설정한다.
        template.setKeySerializer(new StringRedisSerializer());
        // GenericJackson2JsonRedisSerializer : 객체를 JSON 형식으로 변환하여 Redis에 저장할 수 있게 한다.
        template.setValueSerializer(new GenericJackson2JsonRedisSerializer());
        return template;
    }
}

각 라인마다 설정을 주석을 읽어보고 이해하면 된다.

 

 

이제 RedisService 클래스에 공통 사용 메서드를 작성해보자

@Service
public class RedisService {

    @Autowired
    private RedisTemplate<String, Object> redisTemplate;


    public void saveRedis(String key, Object value) {
        redisTemplate.opsForValue().set(key, value);
    }

    public Object getRedis(String key) {
        return redisTemplate.opsForValue().get(key);
    }

}

 

 

redis에 Key-Value 형식으로 저장, 불러오는 과정이다.

 

이제 우리는 설정된 클래스를 어디서나 불러와서 사용하면된다.

 

Controller를 한번 보자

 

@Controller
public class TApiController {

    @Autowired
    private RedisService redisService;

    @RequestMapping("/")
    public String main(@RequestParam Map<String, Object> params) {

        String id = (String) params.get("id");
        String pw = (String) params.get("pw");
        redisService.saveRedis(id, pw);
        Object value = redisService.getRedis(id);
        System.out.println(value);

        return "index";
    }

}

파라미터에 id, pw를 담아서 redis 서버에 저장시켜주고 저장시킨 id를 다시 불러오는 과정을 한 메서드에 다 담겨있다.

 

이렇게 URL 호출을 했을때, redis에 잘 담기는지 확인해보자

redis-cli 명령어를 입력해서 redis 서버 접속 후

키를 조회해보면 hanker로는 잘 조회되지만 hankir로는 조회되지 않는다. 

 

 

value를 불러오는 방법을 알아보자

위 요청 URL을 보면 id=hanker&pw=123456으로 요청했고, 해당 값이 잘 담긴게 보인다.

 

 

이번 글에서는 간단하게 redis 실행에 대해서 알아봤고, 다음 글에서는 응용해서 사용하는 내용을 적어보려 한다.

 

 

끝.

반응형

'DATABASE > Redis' 카테고리의 다른 글

Redis 설치 및 실행  (1) 2024.09.30
Redis 란..  (0) 2024.09.26