Redis Hashes 타입과 명령어

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 tutorialspoint
    • tutorialspoint 라는 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)