Print
카테고리: [ NoSQL ]
조회수: 4527

 

Redis는 빅토르 최님이 언급하신 것처럼 key-value 기반의 NoSQL 로 분류할 수 있습니다. 

그렇다면 비슷한 key-value 기반의 Memcached 와 비교하여 Redis가 가지는 특징은 무엇일까요?

 

여러 특징을 들 수 있겠지만, 그 중 하나는 Redis가 지원하는(처리할 수 있는) 데이터 타입의 다양성 입니다.  

 

Redis가 지원하는 데이터 타입은 String, Set, Sorted set, Hashes, List 다섯 가지인데 기본적인 내용은 아래와 같습니다. 

 

1. String

일반적인 문자열로 최대512MBytes 길이까지 지원. Text 문자열뿐만 아니라Integer와 같은 숫자나 JPEG와 같은 바이너리 파일까지 저장할 수 있음.

 

2. Set

Set은 String의 집합. 여러 개의 값을 하나의 Value 내에 넣는 것으로 생각할 수 있고, 블로그 포스트의 태깅(Tag) 등에 사용될 수 있음. 특이한 점은 Set 간의 연산을 지원하는데, 집합인 만큼 교집합, 합집합, 차이(Differences)를 매우 빠른 시간 내에 추출할 수 있음.

 

3. Sorted set

Set에 ‘score’라는 필드가 추가된 데이터 타입. score는 일종의 ‘가중치’ 정도로 생각할 수 있고, Sorted set에서 데이터는 오름차순으로 내부 정렬되며, 정렬되어 있는 만큼 score 값 범위에 따른 쿼리(range query), top rank에 따른 쿼리 등이 가능.

 

4. Hashes

Hash는 value 내에 field/string value 쌍으로 이루어진 테이블을 저장하는 데이터 타입. RDBMS에서 Primary Key 1개와 String 필드 하나로 이루어진 테이블.

 

5. List

List는 String들의 집합으로 저장되는 데이터 형태는 Set과 유사하지만, 일종의 양방향 linked list 임. List 앞과 뒤에서PUSH/POP 연산을 이용해서 데이터를 넣거나 뺄 수 있고, 지정된 Index 값을 이용해 지정된 위치에 데이터를 넣거나 뺄 수 있음

 

 

다시 위의 Redis 지원 데이터 타입 내용을 요약하자면 이렇습니다.  

 - Value가 일반적인 String뿐만 아니라 Set, List, Hash와 같은 집합형 데이터 구조를 지원

- 저장된 데이터에 대한 연산이나 추가 작업이 가능(합집합, 교집합, RANGE QUERY 등).

 

이상입니다~