RedisTemplate
이란?
- Spring Data Redis 에서 쓰는 핵심 클래스이다.
- Redis 내부에 있는 데이터 액세스를 도와주는 헬퍼 클래스이다.
- 클라이언트에서 작성해야 하는 레디스 공통로직을 제공해 레디스 이용을 편리하게 할 수 있도록 도와준다.
역할
커넥션 관리 (Connection management)
- 레디스 서버와 연결 시에 커넥션 풀과 리소스를 대신 관리해준다.
- 이로 인해 개발자는 직접 커넥션을 열거나 닫을 필요가 없어진다.
직렬화와 역직렬화 지원 (Serialize and Deserialize)
- 자바 Serializer 를 통해 Redis 스토리지와 데이터를 직렬화/역직렬화한다.
- 다른 여러 직렬화 기법도 제공하는데 문자열만 사용한다면
StringRedisTemplate
을 사용하는 것이 좋다.
- 다른 여러 직렬화 기법도 제공하는데 문자열만 사용한다면
- 데이터 타입에 맞는 직렬화와 역직렬화 방식을 Serializer 의 형태로 지원하여 타입에 따른 효율적인 통신이 가능하다.
- 기본 값은
JdkSerializationRedisSerializer
이고StringRedisSerializer
와Jackson2JsonRedisSerializer
같은 상황에 맞는 좋은 Serializer 도 제공한다. - 원한다면 사용자 정의 Serializer 를 구성하는 것도 가능하다.
예외 해석 (Excpetion Translation)
- Redis 의 low-level 예외 메세지를 스프링의
DataAccessException
계층 예외로 번역해준다. - 스프링 프레임워크에서 예외를 다루는데 도움이 된다.
try {
// redis template operaiton
} catch (DataAccessException e) {
// redis template exceptions...
} catch (Exception e) {
// other exceptions...
}
고수준의 연산 (High-level operation)
- Keys, Strings, Hashes, Lists, Sets, Sorted Sets 와 같은 커멘드를 실행할 수 있도록 고수준 연산 API 를 제공한다.
- 이런 고수준 연산 API 는 raw commands 없이 레디스와 소통하는데 도움을 준다.
Thread safety
RedisTemplate
은 thread-safe 하여 멀티스레드 애플리케이션에서도 동시성 이슈 걱정없이 사용 가능하다.
다른 스프링 컴포넌트와의 결합
- 다른 스프링 컴포넌트와 결합하여 caching, messaging 등을 이용하기 편리하다.
반응형
'프레임워크 > 스프링 프레임워크' 카테고리의 다른 글
스프링 부트의 @ConfigurationProperties 애노테이션이란? (0) | 2023.07.30 |
---|---|
스프링의 preHandle() 메서드란? (언제 실행될까?) (0) | 2023.07.26 |
자바 애노테이션으로 빈을 구성하는게 XML 로 구성하는 것 보다 나은 이유 (0) | 2023.04.21 |
<context:annotation-config> 태그란? (스프링 빈 설정 xml) (0) | 2023.04.21 |
스프링 세션 (Spring Session) 이란 무엇이고 어떻게 작동할까? (0) | 2023.04.20 |