Java/Spring Boot

[Spring Boot] Redis

hh_lin 2022. 4. 17. 22:55

1. Redis

캐시, 메시지 브로커, 키/밸류 스토어 등으로 사용 가능

 

 

 

 

 

 

 

 

 

 

 

2. 의존성 추가

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

 

 

 

 

 

 

 

 

 

3. Redis 설치 및 실행 (도커)

 

① Redis 설치

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

 

 

 

 

② 실행

docker exec -i -t redis_boot redis-cli

 

 

 

 

 

 

 

 

 

 

 

 

4. 스프링 데이터 Redis

 

 

# RedisRunner

@Component
public class RedisRunner implements ApplicationRunner {

	@Autowired
	StringRedisTemplate redisTemplate;

	@Autowired
	AccountRepository accountRepository;

	@Override
	public void run(ApplicationArguments args) throws Exception {
		ValueOperations<String, String> values = redisTemplate.opsForValue();
		values.set("name", "hhlin");
		values.set("springboot", "2.0");
		values.set("hello", "world");

		Account account = new Account();
		account.setEmail("hhlin@email.com");
		account.setUsername("hhlin");

		accountRepository.save(account);

		Optional<Account> byId = accountRepository.findById(account.getId());
		System.out.println(byId.get().getUsername());
		System.out.println(byId.get().getEmail());
	}
}

 

 

# Account

@RedisHash("accounts")
public class Account {

   @Id
   private String id;
   private String username;
   private String email;

	// getter, setter 생략
}

 

 

# AccountRepository

public interface AccountRepository extends CrudRepository<Account, String> {
}

 

 

 

 

 

 

 

 

 

 

 

5. Redis 주요 커맨드

  • get {key}
  • hgetall {key}
  • hget {key} {column}

 

 

 

 

 

 

 

 

 

 

 

6. 커스터마이징

spring.redis.* property 수정하면 됨

ex) spring.redis.ssl=false

 

 

 

 

 

 

 

 

 

 

 

https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81%EB%B6%80%ED%8A%B8/dashboard

 

스프링 부트 개념과 활용 - 인프런 | 강의

스프링 부트의 원리 및 여러 기능을 코딩을 통해 쉽게 이해하고 보다 적극적으로 사용할 수 있는 방법을 학습합니다., - 강의 소개 | 인프런...

www.inflearn.com