스프링부트 프로젝트를 새로 생성한다.
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
RedisRunner를 만들어 ApplicationRunner를 implements 해준다.
빈으로 등록해주고, 스프링이 Redis를 사용하는 방법 중 StringRedisTemplate을 사용해보기 위해, 의존성주입을 받는다.
value관련된 operation들을 제공하는 객체를 받아온다.
set을 이용하여 key-value 쌍의 데이터들을 넣어준다.
그 후, 애플리케이션을 실행시키고 keys *
명령어를 입력하면 입력했던 key값들이 보여진다.
각 키에 해당하는 값을 보고 싶으면 get key값
명령어로 확인할 수 있다.
스프링이 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
로 가져올 수 있다.
Redis 커스터마이징 방법은 spring.redis.* 의 프로퍼티들을 수정해주면 된다.
아무런 설정 없이 redis를 사용할 수 있는 이유는 6379포트를 사용했기 때문이다.(스프링부트의 기본 설정 중 redis가 6379이기 때문이다.)