- 프로젝트 진행 중 캐시 서버 구현을 위해 Redis를 사용해야하는 상황이 발생했다.
Redis란?
- RDBMS와는 다른 Key-Value형태로 이루어진 비관계적, 비정형적 데이터 관리 시스템.
- 레디스 내부에서 명령어를 처리하는 부분은 싱글 스레드 아키텍처로 구현
- Redis를 사용하면 사용자가 다양한 데이터 유형에 매핑되는 키를 저장할 수 있다.
- 기본적인 데이터 유형은 String으로서, 텍스트 또는 이진 데이터가 이에 해당하며 최대 크기는 512MB.
- 아래와 같은 것들을 지원한다.
- Redis는 문자열이 추가된 순서대로 유지되는 Lists of Strings, Sets of unordered Strings
- 점수에 따라 정렬되는 Sorted Sets, 필드와 값 목록을 저장하는 Hashes
- 데이터 세트에서 고유한 항목을 세는 HyperLogLogs
- 인 메모리 데이터 구조를 가진다.
- 레디스는 메모리에 데이터를 저장하므로 빠른 속도 처리가 장점
- 데이터를 디스크 또는 SSD에 저장하는 대부분의 데이터베이스 관리 시스템과는 달리 모든 Redis 데이터는 서버의 주 메모리에 상주한다.
- 거의 모든 유형의 데이터가 Redis를 사용하여 인 메모리에 저장될 수 있다.
Build.Gradle 파일 의존성 추가
implementation 'org.springframework.boot:spring-boot-starter-data-redis'
Redis Config 파일 작성
@Bean(name = "redisTemplate")
public RedisTemplate<String, String> responseRedisTemplate() {
RedisTemplate<String, String> template = new RedisTemplate<>();
template.setConnectionFactory(responseRedisConnectionFactory());
template.setKeySerializer(new StringRedisSerializer());
template.setValueSerializer(new StringRedisSerializer());
return template;
}