Redis에는 5가지의 데이터 타입이 존재한다. (Strings, Lists, Sets, Sorted sets, Hashes)
Strings (일반적인 key-value)
- String이라고 해서 문자열만 저장할 수 있는게 아니라, 이진 데이터도 저장 가능 (정수, 실수형이 따로 없다.)
- key에 넣을 수 있는 데이터의 최대 크기는 512MB 이다.
Lists (Array 형태로 key 1개에 n개의 값을 가짐, 중복 값 가능)
- 배열이라고 생각해도 된다.
- 한 key에 넣을 수 있는 요소의 최대 개수는 4,294,967,295 개이다.
- 데이터 형의 값은 설정파일에서 정해준 조건보다 큰 경우 linkedlist 아니면 ziplist로 encoding 된다.
Sets (Group 형태로 key 1개에 n개의 중복되지 않는 값을 가짐)
- 정렬되지 않은 집합형으로 key에 중복된 데이터는 존재하지 않는다.
- 추가, 제거 및 존재 체크 시 소모되는 시간이, sets에 포함된 요소의 수와 관계없이 일정하다.
- 한 key에 넣을 수 있는 요소의 최대 개수는 4,294,967,295 개이다.
- 데이터 형의 값은 설정파일에 정해준 조건보다 큰 경우 hashtable 아니면 intset으로 encoding 된다.
Sorted sets (Group 형태이나 각 member에 score 값을 가짐, key-member-score)
- Sorted sets는 가장 진보한 Redis 데이터 형이라고 한다.
- 요소의 추가, 제거, 업데이트는 매우 빠른 방법으로 진행되는데 이는 "요소의 개수의 로그"에 비례하는
시간이 사용된다.
- 랭킹 시스템 등에서 사용되기 좋다.
- sets의 각 요소마다 score라는 실수 값을 가지고 있는 형태로 score 값으로 오름차순 정렬된다.
- key에 종복된 데이터는 존재하지 않지만 score 값은 중복 가능하다.
Hashes (Object 형태의 key-field-value)
- list와 비슷한데 "필드명", "필드값"의 연속으로 이루어져 있다.
- 한 key에 포함할 수 있는 field-value 쌍의 최대 개수는 4,294, 967,295 개이다.
- 데이터 형의 값은 설정파일에서 정해준 조건보다 큰 경우는 hashtable 아니면 zipmap으로 encoding 된다.
'NoSQL > Redis' 카테고리의 다른 글
[Redis] Redis 명령어 (2) | 2013.07.03 |
---|---|
[Redis] Windows에서 Redis 설치 및 실행 (0) | 2013.07.03 |
[Redis] Redis 란? (1) | 2013.07.03 |