Search
Duplicate
📒

[고성능 서비스를 위한 Redis] 02. Redis의 자료구조

상태
완료
수업
고성능 서비스를 위한 Redis
주제
Redis
4 more properties
참고

Redis 자료구조

NOTE
Redis의 key-value 스토리지에서 value는 단순한 Object가 아니라 다양한 자료구조를 가진다!
각 자료구조들이 사용되는 방식
다양한 데이터 타입 및 자료구조를 제공함으로써, 다양한 활용사례를 지원한다.
모든 데이터 타입 및 자료구조는 Redis의 메모리 내 저장 및 빠른 엑세스를 그대로 유지하므로, 매우빠른 속도로 대량의 데이터를 처리할 수 있다.

Strings

NOTE
일반적인 문자열
byte로 저장된다.
바이너리로 표현되는 모든 데이터 저장이 가능하다.(JPEG와 같은 파일)

명령어

SET, GET
INCR, DECR
특정 키의 값을 정수 취급해서 +- 1해준다,
MSET, MGET
여러 키의 값을 한번에 저장하거나 얻어온다.

Lists

NOTE
linked-list 자료구조
추가 / 삭제 / 조회하는 것은 O(1)의 속도를 가진다.
특정 Index값을 조회하는건 O(N)의 속도를 가진다.
Queue, Stack으로 사용된다

명렁어

LPUSH, RPUSH
새로운 값 추가
LLEN → 개수 반환
LRANGE → 특정범위 반
LPOP, RPOP → 삭제 반환

Hashes

NOTE
전형적인 Hash의 형태
메모리가 허용하는 한, 제한없이 field를 넣을 수가 있다.

명령어

HSET, HGET
HMGET, HINCRBY
HDEL

Sets

NOTE
중복된 데이터를 담지 않기위해 사용한다.
정렬되지 않은 집합이며, 저장된 데이터는 최종 한번만 저장된다.
유저 랭킹 보드서버 같은 구현에서 사
set에 score라는 필드가 추가된 데이터형(score는 일종의 가중치)
score순으로 정렬되며 저장된다.
value는 중복이 불가능하나, score는 중복이 가능하다.
score가 없다면 사전 순으로 정렬

Bitmaps

NOTE
bit 단위연산이 가능하다.
저장할 떄, 저장 공간 절약에 큰 장점이 있다.

HyperLogLog

NOTE
중복되지않은 대용량 데이터를 count할때 주로 많이 사용한다. (오차 범위 0.81%)
set과 비슷하지만 저장되는 용량이 매우 작다.