본문 바로가기

개발자를 위한 레디스

[개발자를 위한 레디스] 레디스의 자료 구조 - hash

 

1) 레디스의 hash란?

- 레디스에서 hash는 필드-값 쌍을 가진 아이템의 집합이다.

  레디스에서 데이터가 key-value 쌍으로 저장되는 것처럼

  하나의 hash 자료 구조 내에서 아이템은 필드-값 쌍으로 저장된다. 

 

- hash는 객체를 표현하기 적절한 자료 구조 이기 때문에

  관계형 데이터베이스의 테이블 데이터로 변환하는 것도 간편하다. 

 

- 칼럼이 고정된 관계형 데이터베이스의 테이블과 달리,

  hash에서 필드를 추가하는 것은 간단하다. 

  hash에서는 각 아이템마다 다른 필드를 가질 수 있으며,

  동적으로 다양한 필드를 추가할 수 있다는 특징이 있다. 

 

 

2) 레디스 hash 커맨드

- HSET 커맨드를 사용하면 hash에 아이템을 저장할 수 있으며,

  한 번에 여러 필드-값 쌍을 저장할 수도 있다. 

 

> HSET Product:123 Name "Happy Hacking"
(integer) 1

> HSET Product:123 TypeID 35
(integer) 1 

> HSET Product:123 Version 2002
(integer) 2

> HSET Product:234 Name "Track Ball" TypeID 32
(integer) 2

 

 

- hash에 저장된 데이터는 HGET 커맨드로 가져올 수 있으며,

  이때에는 hash 자료 구조의 키와 아이템의 필드를 함께 입력해야 한다.

  HMGET 커맨드를 이용하면 하나의 hash 내에서 다양한 필드의 값을 가져올 수 있다. 

  HGETALL 커맨드는 hash 내의 모든 필드-값 쌍을 차례로 반환한다.

 

> HGET Product:123 TypeID
"35"

> HMGET Product:234 Name TypeID
1) "Track Ball"
2) "32"

> HGETALL Product:234
1) "Name"
2) "Track Ball"
3) "TypeID"
4) "32"