티스토리 뷰
RedisTemplate은 Spring Framework에서 제공하는 클래스 중 하나로, Redis 데이터베이스와 상호작용하기 위해 사용됩니다.
Redis는 메모리 기반의 고성능 키-값 데이터 저장소로, 캐싱, 세션 관리, 메시지 큐잉 등에 자주 사용됩니다.
RedisTemplate은 이러한 Redis 기능들을 자바 코드에서 쉽게 사용할 수 있도록 도와주는 도구입니다.
RedisTemplate의 주요 특징 및 기능
- 다양한 데이터 타입 지원:
- Redis는 문자열, 해시, 리스트, 셋, 정렬된 셋 등 다양한 데이터 타입을 지원합니다.
- RedisTemplate은 이러한 모든 데이터 타입에 대해 접근할 수 있는 메서드를 제공합니다. 예를 들어, opsForValue()는 문자열 작업을 위한 메서드를, opsForHash()는 해시 작업을 위한 메서드를 반환합니다.
- 키-값 작업의 추상화:
- Redis는 주로 키-값 쌍으로 데이터를 다룹니다. RedisTemplate은 이러한 작업을 더 간단하게 할 수 있도록 키-값 접근을 추상화하여 제공해줍니다.
- set, get, delete와 같은 일반적인 작업을 위한 메서드를 제공합니다.
- 직렬화/역직렬화:
- Redis는 데이터를 바이트로 저장하므로, 데이터를 저장하거나 가져올 때 직렬화와 역직렬화 과정이 필요합니다.
- RedisTemplate은 이를 자동으로 처리할 수 있도록 여러 가지 직렬화 방법을 설정할 수 있습니다. 기본적으로 StringRedisSerializer, JdkSerializationRedisSerializer 등을 사용할 수 있습니다.
- 트랜잭션 및 파이프라인 지원:
- Redis의 트랜잭션과 파이프라인 기능을 지원하여 여러 작업을 하나의 작업으로 처리하거나, 여러 작업을 동시에 처리할 수 있습니다.
- pub/sub 기능 지원:
- Redis의 퍼블리시/구독(pub/sub) 기능을 통해 메시지 브로커로 사용할 수 있으며, RedisTemplate은 이 기능을 사용하기 쉽게 만들어줍니다.
RedisTemplate 사용 예시
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service;
@Service
public class RedisService {
@Autowired
private RedisTemplate<String, Object> redisTemplate;
public void saveData(String key, Object value) {
redisTemplate.opsForValue().set(key, value);
}
public Object getData(String key) {
return redisTemplate.opsForValue().get(key);
}
public void deleteData(String key) {
redisTemplate.delete(key);
}
}
RedisTemplate 설정
Spring Boot를 사용한다면, 기본적으로 RedisTemplate이 자동으로 설정되지만, 필요에 따라 커스터마이징할 수 있습니다.
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.connection.RedisConnectionFactory;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.serializer.GenericJackson2JsonRedisSerializer;
import org.springframework.data.redis.serializer.StringRedisSerializer;
@Configuration
public class RedisConfig {
@Bean
public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory connectionFactory) {
RedisTemplate<String, Object> template = new RedisTemplate<>();
template.setConnectionFactory(connectionFactory);
// 키는 String으로 직렬화
template.setKeySerializer(new StringRedisSerializer());
// 값은 JSON 형태로 직렬화
template.setValueSerializer(new GenericJackson2JsonRedisSerializer());
return template;
}
}
'기술' 카테고리의 다른 글
redisson-spring-boot-starter란 (0) | 2024.08.12 |
---|---|
Spring Boot의 Java 버전 변경하기 (maven, Intellij) (0) | 2024.05.08 |
Maven을 이용한 웹 어플리케이션 생성 및 설정 (0) | 2022.07.23 |
Maven이란? (0) | 2021.01.08 |
RHEL7의 malloc (0) | 2021.01.03 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- DP
- programmers
- 라면공장
- 짝지어 제거하기
- 17825
- 정수 내림차순으로 배치하기
- 가장 큰 정사각형 찾기
- 게리맨더링 2
- 단체사진 찍기
- 백준
- 2019 카카오 공채
- 오블완
- 찾아라 프로그래밍 마에스터
- 17779
- 투포인터
- 카카오 2020 공채
- 124 나라의 숫자
- 괄호 변환
- 티스토리챌린지
- 2018 카카오 공채
- 큰 수 만들기
- Brainf**k 인터프리터
- 문자열을 정수로 바꾸기
- 프로그래머스
- 카카오2020 공채
- 주사위 윷놀이
- java
- 자바
- 후보키
- 3954
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
글 보관함