🖥️
Redis 데이터타입
September 13, 2023
Redis란
Redis는 Remote Dictionary Server의 약자로, 인메모리 데이터베이스입니다. 인메모리 데이터베이스란 데이터를 디스크나 SSD가 아닌 메모리에 저장하는 데이터베이스를 말합니다. 이렇게 하면 디스크 I/O를 줄여서 빠른 응답 속도를 얻을 수 있습니다. Redis는 단순한 키-값 저장소가 아니라 다양한 데이터 타입을 지원합니다. 이번 포스트에서는 Redis의 주요 데이터 타입과 그 사용법에 대해 알아보겠습니다.
Sentinel vs Cluster
Redis Sentinel
: Redis 인스턴스를 모니터링하고, 마스터 선출, 자동 장애 조치, 알림 등의 기능을 제공Redis Cluster
: Redis 인스턴스를 여러 개의 노드로 분산시켜 데이터를 저장하고, 자동 장애 조치, 샤딩(Sharding) 등의 기능을 제공
특징 | Redis Sentinel | Redis Cluster |
---|---|---|
고가용성 | 마스터 선출, 자동 장애 조치 | 자동 장애 조치 |
분산 방식 | 단일 노드 | 여러 노드 |
샤딩 | 지원하지 않음 | 지원 |
데이터 구조 | 다양한 유형 지원 | 다양한 유형 지원 |
멀티 스레딩 | No | Yes |
Redis vs Memcached
특징 | Redis | Memcached |
---|---|---|
문서화 | Comprehensive | Limited |
데이터 구조 | 다양한 유형 지원 | 이진 문자열만 지원 |
멀티 스레딩 | No | Yes |
성능 | 작은 데이터 저장에서 우수 | 대량의 데이터 저장에서 우수 |
클러스터 | Yes | No |
인기도 | 8th most popular database in the world1 | 28th most popular database in the world |
데이터타입
Redis의 데이터 타입은 크게 다섯 가지로 나눌 수 있습니다. 바로 문자열(String), 리스트(List), 해시(Hash), 셋(Set), 정렬된 셋(Sorted Set)입니다. 각각의 데이터 타입은 다음과 같은 특징과 용도를 가지고 있습니다.
문자열(String)
- 가장 기본적인 데이터 타입으로, 키와 값이 모두 문자열로 구성
- 값은
최대 512MB
까지 저장 - 단순한 텍스트 뿐만 아니라 이미지, 비디오, 오디오 등의 바이너리 데이터도 저장 가능
- 카운터, 캐싱, 세션 관리 등에 사용 가능
리스트(List)
- 문자열의 컬렉션으로, 키 하나에 여러 개의 값이 연결된 형태
- 값은 최대
4억 개
까지 저장 - 삽입 순서를 유지하며, 키의 앞과 뒤에서만 값을 추가하거나 제거 가능
- 스택, 큐, 메시징 등에 사용 가능
해시(Hash)
- 키-값 쌍의 컬렉션으로, 키 하나에 여러 개의 필드와 값이 연결된 형태, 필드와 값은 모두 문자열로 구성
- 값은 최대
4억 개
까지 저장 - 객체나 구조체와 같은 복합적인 데이터를 표현하기에 적합합니다. 해시 타입은 사용자 프로필, 상품 정보, 설정 등에 사용될 수 있습니다.
셋(Set)
- 중복되지 않는 문자열의 컬렉션으로, 키 하나에 여러 개의 값이 연결된 형태
- 값은 최대
4억 개
까지 저장 - 삽입 순서를 유지하지 않으며, 값의 존재 여부를 빠르게 확인 가능
- 태그, 소셜 그래프, 실시간 분석 등에 사용 가능
정렬된 셋(Sorted Set)
- 셋과 비슷하지만, 각 값에 점수(score)라는 부가 정보가 추가된 형태
- 점수는 실수로 표현되며, 값들은 점수를 기준으로 오름차순으로 정렬
- 랭킹, 리더보드, 지역 정보 등에 사용 가능