하나의 키 안에 여러 개의 필드(Field)와 값(Value)을 저장하는, 객체(Object)를 표현하기에 가장 적합한 구조
| 명령어 | 설명 | 예시 |
|---|---|---|
HSET |
하나 이상의 필드와 값을 저장 | HSET user:1 name "Kim" age 25 |
HGET |
특정 필드의 값을 조회 | HGET user:1 name |
HGETALL |
모든 필드와 값을 조회 | HGETALL user:1 |
HINCRBY |
특정 필드의 숫자를 증가시킴 | HINCRBY user:1 age 1 |
HDEL |
특정 필드를 삭제 | HDEL user:1 age |
활용 사례: 사용자 프로필 정보 저장, 상품 상세 정보, 설정값 관리
중복을 허용하지 않는 문자열의 모음. 순서는 보장되지 않지만, 집합 연산(교집합, 합집합 등)이 매우 빠르다.
| 명령어 | 설명 | 예시 |
|---|---|---|
SADD |
집합에 하나 이상의 요소 추가 | SADD tags "web" "backend" |
SREM |
집합에서 특정 요소 삭제 | SREM tags "web" |
SISMEMBER |
특정 요소가 있는지 확인 (0 또는 1) | SISMEMBER tags "backend" |
SINTER |
여러 집합의 교집합 조회 | SINTER setA setB |
SUNION |
여러 집합의 합집합 조회 | SUNION setA setB |
활용 사례: 블로그 태그 시스템, 고유 방문자(IP) 체크, 친구 공통 관심사 추출
Set처럼 중복을 허용하지 않지만, 각 요소마다 Score(점수)를 연결. 이 점수를 기준으로 데이터가 항상 자동 정렬된 상태를 유지
| 명령어 | 설명 | 예시 |
|---|---|---|
ZADD |
점수와 함께 요소 추가/업데이트 | ZADD rank 100 "userA" 200 "userB" |
ZRANGE |
점수 낮은 순으로 범위 조회 | ZRANGE rank 0 -1 |
ZREVRANGE |
점수 높은 순으로 범위 조회 | ZREVRANGE rank 0 -1 |
ZSCORE |
특정 요소의 현재 점수 확인 | ZSCORE rank "userA" |
ZRANK |
특정 요소의 순위(0부터 시작) 확인 | ZRANK rank "userB" |
활용 사례: 실시간 게임 리더보드, 최근 검색어 리스트(점수를 시간으로 설정), 대기열 우선순위 관리