Redis 설치

스프링부트 프로젝트를 새로 생성한다.

redis 의존성을 추가해준다.

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

도커를 사용하여 redis를 설치 & 실행 해준다.

아래의 명령어로 redis를 설치한다.

docker run -p 6379:6379 --name redis_boot -d redis

포트번호 6379번에 이름은 redis_boot로 하여 데몬으로 redis를 띄운다는 뜻이다.

아래의 명령어로 redis를 실행시켜준다.
docker exec -i -t redis_boot redis-cli

스프링이 Redis를 사용하는 2가지 방법이 있다.
1. StringRedisTemplate of RedisTemplate
2. CrudRepository

StringRedisTemplate

RedisRunner를 만들어 ApplicationRunner를 implements 해준다.

빈으로 등록해주고, 스프링이 Redis를 사용하는 방법 중 StringRedisTemplate을 사용해보기 위해, 의존성주입을 받는다.

value관련된 operation들을 제공하는 객체를 받아온다.

set을 이용하여 key-value 쌍의 데이터들을 넣어준다.

그 후, 애플리케이션을 실행시키고 keys * 명령어를 입력하면 입력했던 key값들이 보여진다.

각 키에 해당하는 값을 보고 싶으면 get key값 명령어로 확인할 수 있다.

CrudRepository

스프링이 Redis를 사용하는 방법 중 두 번째 방법인 Repository를 사용해보는 방법을 사용해보겠다.

Account 클래스를 만들어 @RedisHash 애노테이션을 붙여준다. @RedisHash는 Redis의 hash값을 이용하는 것이다.

그리고 해당 Account에 대한 Repository를 만들어준다.
CrudRepository를 extends 받아서 repository가 다루는 타입과, key의 타입을 값으로 준다.

그 후 RedisRunner에서 AccountRepository를 주입받아 값을 저장해주고 출력해준다.

실행시키면 제대로 값을 보여줌을 볼 수 있다.

터미널에서도 keys *를 입력해보면, 입력해줬던 hash(accounts)와 hash에 들어있는 하나의 entity가 보임을 볼 수 있다.

hash 데이터를 불러 올때는 hget 해쉬entity 필드이름으로 불러온다.

hash 엔티티의 모든 값을 가져오고 싶으면 hgetall 해쉬entity로 가져올 수 있다.

tip

Redis 커스터마이징 방법은 spring.redis.* 의 프로퍼티들을 수정해주면 된다.

아무런 설정 없이 redis를 사용할 수 있는 이유는 6379포트를 사용했기 때문이다.(스프링부트의 기본 설정 중 redis가 6379이기 때문이다.)

1개의 댓글