Computer >> 컴퓨터 >  >> 프로그래밍 >> Redis

레디스 HSET·HSETNX·HMSET 완벽 정리 – 해시 필드에 값 설정하기

이 글에서는 레디스(Redis)에서 키에 저장된 해시(hash) 값의 각 필드에 값을 설정하는 방법을 알아봅니다. 이를 위해 HSET, HSETNX, HMSET 세 가지 명령어를 사용하며, 각 명령어의 문법과 반환값, 실제 동작 예제까지 함께 살펴보겠습니다.

HSET 명령어란?

HSET은 지정된 키에 저장된 해시에서 특정 필드에 값을 설정하는 명령어입니다. 해당 필드가 이미 존재하면 기존 값은 새 값으로 덮어써지며, 키가 존재하지 않으면 설정 작업을 수행하기 전에 해시 값을 담는 새로운 키가 자동으로 생성됩니다.

단, 키가 존재하지만 그 값이 해시 타입이 아니라면 에러가 반환됩니다.

문법

redis host:port> HSET <keyname> <field> <value>

반환값

- 1 (integer): 필드가 해시에 새로 추가되고 값이 설정된 경우
- 0 (integer): 필드가 이미 존재하여 기존 값이 덮어써진 경우
- Error: 키가 존재하지만 저장된 값이 해시 타입이 아닌 경우

실행 예제

레디스 HSET·HSETNX·HMSET 완벽 정리 – 해시 필드에 값 설정하기

HSETNX 명령어란?

HSETNX는 "Hash Set if Not eXists"의 약자로, 지정된 필드가 해시에 존재하지 않는 경우에만 값을 설정합니다. 필드가 이미 존재한다면 이 명령어는 아무런 영향을 주지 않습니다. 키가 존재하지 않으면 마찬가지로 해시를 담는 새 키가 먼저 생성됩니다.

키가 존재하지만 저장된 값이 해시 타입이 아니면 에러가 반환됩니다.

문법

redis host:port> HSETNX <keyname> <field> <value>

반환값

- 1 (integer): 필드가 새로 생성되고 값이 설정된 경우
- 0 (integer): 필드가 이미 존재하여 아무 작업도 수행되지 않은 경우
- Error: 키가 존재하지만 저장된 값이 해시 타입이 아닌 경우

실행 예제

레디스 HSET·HSETNX·HMSET 완벽 정리 – 해시 필드에 값 설정하기

HMSET 명령어란?

HMSET은 한 번의 호출로 여러 개의 필드/값 쌍을 해시에 설정할 수 있는 명령어입니다. 지정한 필드 중 하나라도 이미 존재하면 해당 값은 덮어써지며, 키가 없으면 새 해시 키가 생성됩니다.

참고: HMSET은 Redis 4.0.0부터 공식적으로 권장되지 않습니다(deprecated). 최신 버전의 HSET은 여러 필드/값 쌍을 지원하므로, 새로운 코드에서는 HSET을 사용하는 것이 좋습니다.

문법

redis host:port> HMSET <keyname> <field> <value> [<field> <value>]

반환값

- OK (simple string): 모든 필드/값 쌍이 성공적으로 설정된 경우
- Error: 키가 존재하지만 저장된 값이 해시 타입이 아닌 경우

실행 예제

레디스 HSET·HSETNX·HMSET 완벽 정리 – 해시 필드에 값 설정하기

세 명령어 비교 요약

명령어필드 존재 시 동작다중 필드 지원
HSET기존 값을 덮어씀지원 (4.0.0 이상)
HSETNX아무 작업도 하지 않음미지원
HMSET기존 값을 덮어씀지원 (deprecated)

참고 자료

  1. HSET 공식 문서
  2. HSETNX 공식 문서
  3. HMSET 공식 문서

지금까지 레디스 데이터스토어에서 해시 값의 필드에 값을 설정하는 HSET, HSETNX, HMSET 명령어에 대해 알아보았습니다. 내용이 도움이 되셨다면 댓글로 의견을 남겨주시고, 주변에도 널리 공유해 주세요!

해시(Hash) 명령어 목록으로 돌아가기