Redis 해시 연산

RedisBeginner
지금 연습하기

소개

이 랩에서는 Redis Hash 연산을 탐구하고, 해시 내에서 데이터를 효율적으로 관리하는 데 중점을 둡니다. 먼저 HMSET 명령을 사용하여 해시에 여러 필드를 동시에 설정하는 방법을 시작합니다. 그런 다음, HMGET을 사용하여 특정 필드를 검색하고, HINCRBY를 사용하여 필드 값을 증가시키며, HEXISTS를 사용하여 해시 내에 필드가 존재하는지 확인하는 방법을 배우게 됩니다. 이 랩을 마치면 Redis 에서 일반적인 해시 연산을 수행하는 방법에 대한 확실한 이해를 갖게 될 것입니다.

HMSET 으로 여러 필드 설정

이 단계에서는 Redis 의 HMSET 명령을 살펴봅니다. 이 명령을 사용하면 해시의 여러 필드를 한 번에 설정할 수 있습니다. 이는 HSET 명령을 사용하여 각 필드를 개별적으로 설정하는 것보다 효율적입니다.

먼저, redis-cli 명령을 사용하여 Redis 서버에 연결해 보겠습니다. ~/project 디렉토리에서 터미널을 열고 다음을 입력합니다.

redis-cli

Redis 프롬프트 127.0.0.1:6379>가 표시되어야 합니다.

이제 HMSET 명령을 사용해 보겠습니다. 구문은 다음과 같습니다.

HMSET key field value [field value ...]

여기서:

  • key는 해시의 이름입니다.
  • field는 해시 내의 필드 이름입니다.
  • value는 필드에 할당할 값입니다.

user:1001이라는 해시를 생성하고 name, age, city와 같은 여러 필드를 설정해 보겠습니다.

HMSET user:1001 name "John Doe" age 30 city "New York"

출력 OK가 표시되어야 하며, 이는 명령이 성공했음을 나타냅니다.

필드가 올바르게 설정되었는지 확인하려면 HGETALL 명령을 사용할 수 있습니다. 그러나 이 랩에서는 명령 자체를 확인하는 데 중점을 둡니다.

HMSET을 사용하여 기존 필드를 업데이트할 수도 있습니다. 예를 들어, age 필드를 31로 변경해 보겠습니다.

HMSET user:1001 age 31

다시 OK가 표시되어야 합니다.

확인을 위해 명령이 기록되도록 exit를 입력하여 redis-cli 를 종료하는 것을 잊지 마십시오.

exit

HMGET 으로 여러 필드 검색

이 단계에서는 HMGET 명령을 사용하여 Redis 해시에서 여러 필드를 검색하는 방법을 배웁니다. 이는 전체 해시를 검색하지 않고 특정 필드만 필요한 경우에 유용합니다.

먼저, redis-cli 명령을 사용하여 Redis 서버에 연결합니다.

redis-cli

이전 단계에서 name, age, city 필드를 가진 user:1001이라는 해시를 생성했음을 기억하십시오. HMGET 명령을 사용하여 nameage 필드를 검색해 보겠습니다.

HMGET의 구문은 다음과 같습니다.

HMGET key field [field ...]

여기서:

  • key는 해시의 이름입니다.
  • field는 검색하려는 필드의 이름입니다. 여러 필드를 지정할 수 있습니다.

user:1001 해시에서 nameage 필드를 검색하려면 다음 명령을 실행합니다.

HMGET user:1001 name age

다음과 유사한 출력이 표시되어야 합니다.

1) "John Doe"
2) "31"

출력은 요청한 필드의 순서에 해당하는 값의 배열입니다.

해시에 필드가 존재하지 않으면 HMGET은 해당 필드에 대해 nil을 반환합니다.

exit를 입력하여 redis-cli 를 종료하는 것을 잊지 마십시오.

exit

HINCRBY 로 필드 값 증가

이 단계에서는 HINCRBY 명령을 사용하여 Redis 해시에서 필드의 값을 증가시키는 방법을 배웁니다. 이 명령은 카운터 및 기타 숫자 데이터에 특히 유용합니다.

먼저, redis-cli 명령을 사용하여 Redis 서버에 연결합니다.

redis-cli

이전 단계에서 생성한 user:1001 해시를 계속 사용하겠습니다. 이 사용자의 로그인 횟수를 추적하려는 경우를 가정해 보겠습니다. 해시에 logins 필드를 추가하고 사용자가 로그인할 때마다 증가시킬 수 있습니다.

먼저, logins 필드를 추가하고 0 으로 초기화해 보겠습니다. 이를 위해 HMSET을 사용할 수 있습니다.

HMSET user:1001 logins 0

OK가 표시되어야 합니다. 이제 HINCRBY를 사용하여 logins 필드를 증가시켜 보겠습니다.

HINCRBY의 구문은 다음과 같습니다.

HINCRBY key field increment

여기서:

  • key는 해시의 이름입니다.
  • field는 증가시키려는 필드의 이름입니다.
  • increment는 필드를 증가시키려는 양입니다.

logins 필드를 1 만큼 증가시키려면 다음 명령을 실행합니다.

HINCRBY user:1001 logins 1

logins 필드의 새 값인 (integer) 1이 표시되어야 합니다.

logins 필드를 다시 증가시켜 보겠습니다.

HINCRBY user:1001 logins 1

출력은 (integer) 2가 됩니다.

1 이 아닌 다른 값으로도 증가시킬 수 있습니다.

exit를 입력하여 redis-cli 를 종료하는 것을 잊지 마십시오.

exit

HEXISTS 로 필드 존재 여부 확인

이 단계에서는 HEXISTS 명령을 사용하여 Redis 해시에 필드가 존재하는지 확인하는 방법을 배웁니다. 이는 필드를 검색하거나 수정하기 전에 필드의 존재 여부를 확인하는 데 유용합니다.

먼저, redis-cli 명령을 사용하여 Redis 서버에 연결합니다.

redis-cli

이전 단계에서 생성한 user:1001 해시를 계속 사용하겠습니다. 이 해시에는 name, age, city, logins와 같은 필드가 있다는 것을 알고 있습니다. HEXISTS를 사용하여 name 필드가 존재하는지 확인해 보겠습니다.

HEXISTS의 구문은 다음과 같습니다.

HEXISTS key field

여기서:

  • key는 해시의 이름입니다.
  • field는 확인하려는 필드의 이름입니다.

user:1001 해시에 name 필드가 존재하는지 확인하려면 다음 명령을 실행합니다.

HEXISTS user:1001 name

필드가 존재함을 나타내는 출력 (integer) 1이 표시되어야 합니다.

이제 존재하지 않는 필드, 예를 들어 country를 확인해 보겠습니다.

HEXISTS user:1001 country

필드가 존재하지 않음을 나타내는 출력 (integer) 0이 표시되어야 합니다.

exit를 입력하여 redis-cli 를 종료하는 것을 잊지 마십시오.

exit

요약

이 랩에서는 Redis 해시 연산에 대해 배웠습니다. HMSET 명령을 사용하여 해시에 여러 필드를 효율적으로 설정하는 것으로 시작했습니다. 그런 다음, HMGET을 사용하여 특정 필드를 검색하고, HINCRBY로 필드 값을 증가시키고, HEXISTS를 사용하여 해시 내에서 필드의 존재 여부를 확인하는 방법을 살펴보았습니다. 이러한 명령은 Redis 해시 내에서 데이터를 효과적으로 관리하기 위한 기반을 제공합니다.