Redis는 오픈 소스 인메모리 데이터 저장소로, 빠른 읽기 및 쓰기 성능을 제공하며 키-값(key-value) 구조를 기반으로 동작합니다.
단순 캐싱 외에도 데이터베이스, 메시지 브로커, 세션 관리 등 다양한 용도로 사용됩니다.
String value = redisTemplate.opsForValue().get("key");
if (value == null) {
value = "some data from database";
redisTemplate.opsForValue().set("key", value);
}
spring:
session:
store-type: redis
Redisson 라이브러리를 활용해 쉽게 구현 가능 RLock lock = redissonClient.getLock("lockKey");
lock.lock();
try {
// 작업
} finally {
lock.unlock();
}
// 발행자
redisTemplate.convertAndSend("channel", "message");
// 구독자
@RedisListener(topics = "channel")
public void receiveMessage(String message) {
System.out.println("Received: " + message);
}
Redis 의존성 추가
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
Redis 설정 (application.yml)
spring:
redis:
host: localhost
port: 6379
RedisTemplate Bean 등록
@Configuration
public class RedisConfig {
@Bean
public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory connectionFactory) {
RedisTemplate<String, Object> template = new RedisTemplate<>();
template.setConnectionFactory(connectionFactory);
return template;
}
}