티스토리 뷰

Hashes 관련 명령어 예제

 
HSET 하나의 객체에 여러개의 변수를 담을 수 있는 구조 라고 생각하면 편하겠다.
Man이라는 객체가 있다면
 

 Man.age = 30
 Man.name = Jung
 Man.gender = M
 Man.job = developer

Man이 key
age, name, gender, job ... = filed 와 비슷한 구조라고 보면된다.

 

- HSET, HGET

설명(HSET) : key에 저장된 해시 필드를 설정합니다.
설명(HGET: key filed에 저장된 값을 불러온다

시간복잡도 : O(1)

redis-cli > HSET key field value

redis-cli > HGET key field

 redis > HSET man age 30
 (integer) 1
 redis > HGET man age
 "30"

- HMSET, HMGET

설명(HMSET) : key에 저장된 해시 필드를 여러개 설정합니다.
설명(HMGET: key filed에 저장된 값을 여러개 불러온다

시간복잡도 : O(N)

redis-cli > HMSET key field value [field value ...]

redis-cli > HMGET key field [field ...]

 redis > HMSET man age 30 name "jung" gender "M" job "developer"
 "OK"
 redis > HMGET man age name gender job
 1) "30"
 2) "jung"
 3) "M"
 4) "developer"

- HSETNX

설명(HSETNX) : key에 필드가 아직 존재하지 않는 경우에만 저장합니다.

시간복잡도 : O(1)

redis-cli > HSETNX key field value [field value ...]

 redis > HSETNX man age 30
 (integer) 1
 redis > HSETNX man age 30
 (integer) 0

- HKEYS, HVALS, HGETALL

설명(HKEYS) : key에 저장된 모든 필드명을 가져온다.
설명(HVALS: key에 저장된 모든 값을 가져온다
설명(HGETALL: key에 저장된 모든 필드와 값을 가져온다

시간복잡도 : O(N)

redis-cli > HKEYS key

redis-cli > HVALS key

redis-cli > HGETALL key

 redis > HMSET man age 30 name "jung" gender "M" job "developer"
 "OK"
 redis > HKEYS man
 1) "age"
 2) "name"
 3) "gender"
 4) "job"

 redis > HVALS man

 1) "30"
 2) "jung"
 3) "M"
 4) "developer"

 redis > HGETALL man
 1) "age"
 2) "30"
 3) "name"
 4) "jung"
 5) "gender"
 6) "M"
 7) "job"
 8) "developer"

- HLEN, HSTRLEN

설명(HLEN) : key에 저장된 필드의 개수를 리턴한다.
설명(HSTRLEN: key 필드에 저장된 value의 길이를 리턴한다.

시간복잡도 : O(1)

redis-cli > HLEN key

redis-cli > HSTRLEN key field

 redis > HMSET man age 30 name "jung" gender "M" job "developer"
 "OK"
 redis > HLEN man
 (integer) 4

 redis > HSTRLEN man name

 (integer) 4
 redis > HSTRLEN man job
 (integer) 9

- HDEL

설명(HDEL) : key에 저장된 필드의 값을 삭제한다.

시간복잡도 : O(N)

redis-cli > HDEL key field [field ...]

 redis > HMSET man age 30 name "jung" gender "M" job "developer"
 "OK"
 redis > HDEL man age
 (integer) 1

 redis > HDEL man name

 (integer) 1
 redis > HDEL man address
 (integer) 0

- HEXISTS

설명(HEXISTS) : key에 저장된 필드의 값의 유무를 판단한다. 있으면 1리턴 없거나 키가 존재하지 않으면 0리턴

시간복잡도 : O(1)

redis-cli > HEXISTS key field

 redis > HMSET man age 30 name "jung" gender "M" job "developer"
 "OK"
 redis > HEXISTS man age
 (integer) 1

 redis > HEXISTS man address

 (integer) 0

 

 

 

- HINCRBY, HINCRBYFLOAT

설명(HINCRBY) : key에 저장된 필드의 값을 증가 혹은 감소 시킨다.
설명(HINCRBYFLOAT) : key에 저장된 필드의 값을 증가 혹은 감소 시킨다.(소수점)

시간복잡도 : O(1)

redis-cli > HINCRBY key field increment

redis-cli > HINCRBYFLOAT key field increment

 redis > HSET man age 30
 "OK"
 redis > HINCRBY man age 4
 (integer) 34

 redis > HINCRBY man age -5

 (integer) 29
 redis > HINCRBYFLOAT man age 3.3
 (integer) 32.3

 

다음은 제가 요새 듣고 있는 노래 인데 커버곡을 잘 불러서 퍼왔습니다! 한 번 들어보세요