Redis Hashes 타입과 명령어
개요
Redis의 데이터 타입 중 하나인 Hash에 대해 알아보자.
Hashes 데이터 타입
- Hash 구조는 아래와 같은 구조를 갖는다.
    
<key, <field, value>>
 - 
    
Hash 구조를 통해, 객체(object)를 편리하게 표현할 수 있다. 아래는 그 예시이다.
key: 사람1 이름(field): 홍길동 성별(field): 남자 나이(field): 18 
예시
redis 127.0.0.1:6379> HMSET tutorialspoint name "redis tutorial"
description "redis basic commands for caching" likes 20 visitors 23000
OK
redis 127.0.0.1:6379> HGETALL tutorialspoint
1) "name"
2) "redis tutorial"
3) "description"
4) "redis basic commands for caching"
5) "likes"
6) "20"
7) "visitors"
8) "23000"
HMSET tutorialspoint name "redis tutorial"tutorialspoint라는 key로,<name, redis tutorial>이라는 key-value pair를 저장한다.
HGETALL tutorialspointtutorialspoint라는 key의 모든 key-value pair를 반환한다.
주요 명령어 Reference
| NO. | 명령어 | 설명 | 시간복잡도 | 비고 | 
|---|---|---|---|---|
| 1 | HDEL key field1 field2 … | 해당 key에 저장된 하나 이상의 field들을 제거 | O(N)  N: 지울 field 갯수  | 
      |
| 2 | HEXISTS key field | 해당 key에 해당 field가 존재하는지 확인  1: 존재함, 0: 존재안함  | 
      O(1) | |
| 3 | HGET key field | 해당 key의 해당 field 값을 반환 | O(1) | |
| 4 | HGETALL key | 해당 key의 모든 field-value 를 반환 | O(N)  N: 저장된 아이템 갯수  | 
      |
| 5 | HINCRBY key field increment | 해당 key의 해당 field의 정수형 값을 increment 만큼 증가 | O(1) | |
| 6 | HINCRBYFLOAT key field increment | 해당 key의 해당 field의 실수형 값을 increment 만큼 증가 | O(1) | |
| 7 | HKEYS key | 해당 key의 모든 fields 반환 | O(N)  N: 저장된 아이템 갯수  | 
      |
| 8 | HLEN key | 해당 key의 모든 fields 개수 반환 | O(1) | |
| 9 | HMGET key field1 field2 … | 해당 key의 한 개 이상의 field 값 반환 | O(N)  N: 반환할 field 갯수  | 
      |
| 10 | HMSET key field1 value1 field2 value2 … | 해당 key에 한 개 이상의 field-value 저장 | O(N)  N: 저장될 아이템 갯수  | 
      deprecate (비권장)  HSET 사용 권장  | 
    
| 11 | HSET key field1 value1 field2 value2 | 해당 key에 한 개 이상의 field-value 저장 | O(N)  N: 저장될 아이템 갯수  | 
      |
| 12 | HSETNX key field value | 해당 key에 동일한 field가 없다면 field-value 저장 | O(1) | |
| 13 | HVALS key | 해당 key의 모든 value 반환 | O(N)  N: 저장된 아이템 갯수  | 
      |
| 14 | HSCAN key cursor [MATCH pattern] [COUNT count] | 해당 key의 몇 개의 field-value 반환 | O(1)  단, 모든 아이템을 조회한 경우 총 O(N)  |