
Redis는 Remote Dictionary Server의 약자로,
키-값 구조의 비정형 데이터를 저장하고 관리하는
오픈 소스 기반 비관계형 데이터베이스 관리 시스템 (NoSQL DBMS).
주요 특징은 메모리 기반의 키-값 데이터 저장소로서,
빠른 데이터 입출력을 제공하여 실시간 데이터 저장 및 처리가 필요한 서비스에 최적화되어 있음
일반 데이터베이스는 영속성을 가지고 있지만
입출력 속도에서 메모리 기반 시스템에 비해 느린 점이 있음.
반면, Redis는 메모리에 데이터를 저장해 읽기 및 쓰기 속도가 매우 빠름
Redis의 작동 방식
Redis는 모든 데이터를 메모리에 저장하며,
로그에 기록해 디스크에 저장하는 방식을 통해 영속성을 제공함.
이를 통해 시스템 재부팅 시 로그를 기반으로 데이터를 복구하여 다시 메모리에 로드할 수 있음.
그러나 이러한 메모리 기반 특성 때문에 주로 캐시와 같은 휘발성 데이터나 임시 데이터를 저장하는 데 많이 사용됨
Redis는 NoSQL DBMS와 동시에 인 메모리 솔루션으로도 분류될 수 있으며,
Cassandra나 HBase와 같은 시스템과 유사하게 비정형 데이터를 다룰 수 있음
Redis의 주요 특징 및 데이터 타입
- Key/Value 구조: Redis는 키-값으로 데이터가 저장되며, 간단한 형태로 빠르게 접근할 수 있음
- 다양한 데이터 타입 지원
- String: 기본 데이터 타입으로, 최대 512MB 크기까지 지원되며 텍스트뿐만 아니라 정수, 이진 데이터(JPEG 등)도 저장 가능
- Set: 문자열의 집합으로, 여러 값을 하나의 Value 안에 넣을 수 있으며 중복을 허용하지 않음.
- Sorted Sets: Set과 유사하나, Score라는 필드를 포함하여 데이터에 가중치를 부여할 수 있으며, Score를 기준으로 오름차순 정렬됨
- Lists: 문자열의 리스트로, 양방향 Linked List 구조를 사용해 리스트의 앞뒤에서 데이터를 추가하거나 삭제할 수 있음
- Hashes: 필드와 값의 쌍으로 이루어진 테이블 형태로, 객체를 표현하는 데 유용
집합 내 요소 수와 관계없이 일정한 시간 내 조회가 가능