String 요약
- 가장 기본적인 테이터 타입으로 제일 많이 사용
- Key value 문자열이 저장됨
- 문자열이 저장될때 바이트 배열로 저장됨
- binary-safe (모든 문자를 표현할 수 있음)
- 한키에 담을수 있는 밸류는 512M
명령어 | 기능 | 예제 |
SET | 특정 키에 문자열 값을 저장 | SET say hello |
GET | 특정 키의 문자열 값을 얻어온다 | GET say |
INCR | 특정 키의 값을 Integer로 취급하여 1 증가 | INCR mycount (아토믹하다) |
DECR | 특정 키의 값을 Ineger로 취급하여 1 감소 | DECR mycount (아토믹 하다) |
MSET | 여러 키에 대한 값을 한번에 저장 | MSET mine mil your coppe |
MGET | 여러 키 에 대한 값을 한번에 얻어온다 | MGET mine your |
- INCR, DECR은 연산은 아토믹 하기 때문에 레이스 컨디션이 발생하지 않는다 왜?
LIst 요약
- Linked-List 형태의 자료구조 ( 인덱스 접근은 느리지만 데이터 추가 삭제가 빠름)
- Queue와 Stack으로 사용할 수 있음
- 앞에서 넣고 앞에서 빼면 스택
- 앞에서 넣고 뒤어서 빼면 큐
명령어 | 기능 | 예제 |
LPUSH | 리스트 왼쪽(head)에 새로궁 값을 추가 | LPUSH myfirst apple |
RPUSH | 리스트 오른쪽(tail)에 새로운 값을 추가 | RPUSH myfirst banana |
LLEN | 리스트에 들어있는 개수를 반환 | LLEN myfirst |
LRANGE | 리스트의 특정 범위를 반환 | LRANGE myrist 0 -1 첫번째부터, 가장 마지막번까지 LRANGE myfirst 0 -2 첫번째부터 마지막에서 두번째까지 |
LPOP | 리스트의 왼쪽(head)에서 값을 삭제하고 반환 | LPOP myfirst |
RPOP | 리스트의 오른쪽 (tail)에서 값을 삭제하고 반환 | RPOP myfirst |
Hashes요약
- 하나의 Key 하위에 여러개의 field-value쌍을 저장
- 여러 필드를 가진 객체를 저장하는 것으로 새악
- HINCRBY명령어를 사용해 카운터로 활용 가능
명령어 | 기능 | 예제 |
HSET | 한개 또는 다수의 필드에 값을 저장 | HSET user1 name bear age 10 |
HGET | 특정 필드의 값을 반환 | HGET user1 name |
HMGET | 한개 이상의 필드값을 반환 | HMGET uer1 name age |
HINCRBY | 특정 필드의 값을 Integer로 취급하여 숫자 증가 | HINCRBY user1 viewcount1 |
HDEL | 한개 이상의 필드를 삭제 | HDEL user1 name age |
HKEYS | 특정키의 필드를 조회 | HKEYS uwer1 |
SortedSets 요약
- Set과 유사하게 유니크값의 집합
- 각 값은 연관된 score 가지고 정렬되어 있음
- 정렬된 상태이기 때문에 빠르게 최소값/최대값을 구할수 있음
명령어 | 기능 | 예제 |
ZADD | 한개 또는 다수의 값을 추가 또는 업데이트 | ZADD myrank 10 apple 20 banana |
ZRANGE | 특정 범위의 값을 반환(오름차순으로 정렬된 기준) | ZRANGE myrank 0 1 |
ZRANK | 특정 값의 위치(순위)를 반환 (오름차순으로 정렬된 기준) | ZRANK myrank apple |
ZREVRANK | 특정 값의 위치(순위)를 반환(내림차순 정렬기준) | ZREVRANK myrank apple |
ZREM | 한개이상의 값을 삭제 | ZREM myrank appl |
Bitmaps요약
- 비트 벡터를 사용해 N개의 Set을 공간 효율적으로 저장
- 하나 비트맵이 가지는 공간은 4,294,967,295(2^32 -1) 42억개 저장가능
- 비트 연산 가능
- 유저의 방문 현황을 저장할수 있음
명령어 | 기능 | 예제 |
SETBIT | 비트맵의 특정 오프셋값을 변경 | SETBIT visit 10 1 |
GETGIT | 비트맵의 특정 값을 반환 | GETBIT visit 10 |
BITCOUNT | 비트맵에서 set(1)인 비트의 갯수 반환 | BITCOUNT visit |
BITOP | 비트맵간의 비트 연산 수행하고 결과를 비트맵에 저장 | BITOP AND result today yesterday (양쪽다 1인걸 result에 넣음) |
HyperLogLog요약
- 유니크한 값의 개수를 효율적으로 얻을수 있음
- 확률적으로 자료구조 오차가 있으며 매우 큰 데이터를 다룰때 사용
- 12K까지 메모리를 사용하며 0.81% 오차율을 허용
명령어 | 기능 | 예제 |
PFADD | HyperLogLog값들을 추가 | PFADD visit Jay Peter Jane |
PFCOUNT | HyperLogLog에 입력된 값들의 cadinality(유일값 수)를 반환 | PFCOUNT visit |
PFMERGE | 다수의 HyperLogLog를 병합 | PFMERGE result visit1 visit2 |