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

Redis HEXISTS 완벽 가이드 – 해시 필드 존재 여부 확인 방법

이 튜토리얼에서는 키(key)에 저장된 해시(hash) 값 안에 특정 필드가 존재하는지 확인하는 방법을 알아보겠습니다. 이를 위해 redis-cli에서 제공하는 HEXISTS 명령어를 사용합니다.

HEXISTS 명령어는 키에 저장된 해시 값이 지정한 필드를 포함하고 있으면 1을 반환합니다. 반대로 키 자체가 존재하지 않거나, 키는 존재하지만 해시 값에 해당 필드가 없는 경우에는 0을 반환합니다.

또한 키는 존재하지만 저장된 값의 자료형이 해시가 아니라면 에러(error)가 반환됩니다. Redis HEXISTS 명령어의 기본 문법은 다음과 같습니다.

문법(Syntax)

redis host:port> HEXISTS <keyname> <field>
  • keyname : 확인하려는 해시가 저장된 키의 이름
  • field : 존재 여부를 확인하려는 필드 이름

반환값(Return Value)

- (integer) 1 : 해시 값에 해당 필드가 존재하는 경우
- (integer) 0 : 해시 값에 해당 필드가 없거나 키 자체가 존재하지 않는 경우
- Error      : 키는 존재하지만 저장된 값이 해시(hash) 타입이 아닌 경우

예제(Example)

먼저 HSET으로 해시 필드를 생성한 뒤 HEXISTS로 확인해 보겠습니다.

redis host:port> HSET user:1001 name "Alice"
(integer) 1

redis host:port> HEXISTS user:1001 name
(integer) 1

redis host:port> HEXISTS user:1001 email
(integer) 0

redis host:port> SET mykey "hello"
OK

redis host:port> HEXISTS mykey name
(error) WRONGTYPE Operation against a key holding the wrong kind of value

위 예제에서 볼 수 있듯이, user:1001 해시에는 name 필드가 존재하므로 1이 반환되고, email 필드는 없으므로 0이 반환됩니다. 마지막 예제처럼 문자열(string) 타입의 키에 HEXISTS를 실행하면 WRONGTYPE 에러가 발생합니다.

참고 사항

HEXISTS 명령어의 시간 복잡도는 O(1)입니다. 따라서 해시에 저장된 필드가 아무리 많아도 필드 존재 여부를 매우 빠르게 확인할 수 있습니다. 로그인 세션 검증, 캐시 유효성 체크 등 필드 단위 조회가 필요한 상황에서 유용하게 활용됩니다.

참고 자료(References)

  1. Redis 공식 문서 – HEXISTS Command Docs

지금까지 Redis 데이터 저장소에 저장된 해시 값 내부에서 특정 필드의 존재 여부를 확인하는 방법을 알아보았습니다. 내용이 도움이 되었다면 댓글로 의견을 남겨주시고, 주변에도 널리 공유해 주세요.