본문 바로가기

NoSQL/Redis

[Redis] Redis 데이터 타입


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