Redis 데이터 구조 소개

RedisBeginner
지금 연습하기

소개

이 랩에서는 기본적인 Redis 데이터 구조를 살펴보고, redis-cli 명령줄 도구를 사용하여 이러한 구조와 상호 작용하는 방법을 배우게 됩니다. 이 랩은 Redis 에서 데이터를 저장하고 검색하는 방법을 이해하는 데 도움이 되는 실습 위주로 구성되었습니다.

먼저 문자열 (String) 을 다루면서 문자열 값을 설정, 가져오기, 존재 여부 확인 및 삭제하는 방법을 배웁니다. 그런 다음, LPUSHLRANGE와 같은 명령을 사용하여 리스트 (List) 를 다룹니다. 다음으로, SADDSMEMBERS를 사용하여 세트 (Set) 를 관리합니다. 마지막으로, HSETHGET을 사용하여 해시 (Hash) 를 탐구합니다. 이러한 실습 경험은 다양한 애플리케이션에서 Redis 를 사용하는 데 필요한 탄탄한 기반을 제공할 것입니다.

이것은 가이드 실험입니다. 학습과 실습을 돕기 위한 단계별 지침을 제공합니다.각 단계를 완료하고 실무 경험을 쌓기 위해 지침을 주의 깊게 따르세요. 과거 데이터에 따르면, 이것은 초급 레벨의 실험이며 완료율은 95%입니다.학습자들로부터 100%의 긍정적인 리뷰율을 받았습니다.

간단한 데이터를 위한 문자열 사용

이 단계에서는 Redis 를 사용하여 간단한 문자열 데이터를 저장하고 검색하는 방법을 살펴보겠습니다. Redis 는 종종 캐시 또는 간단한 키 - 값 저장소로 사용되며, 문자열은 Redis 가 제공하는 가장 기본적인 데이터 유형입니다.

먼저, redis-cli 명령줄 도구를 사용하여 Redis 서버에 연결해 보겠습니다. LabEx VM 에서 터미널을 엽니다. 이미 ~/project 디렉토리에 있어야 합니다.

다음 명령을 입력하여 Redis 서버에 연결합니다.

redis-cli

다음과 같은 프롬프트를 볼 수 있습니다.

127.0.0.1:6379>

이는 현재 Redis 서버에 연결되어 있음을 나타냅니다.

이제 간단한 문자열 값을 설정해 보겠습니다. SET 명령을 사용합니다. SET 명령은 두 개의 인수를 받습니다: 키와 값입니다. mykey라는 키를 값 Hello Redis로 설정해 보겠습니다.

SET mykey "Hello Redis"

다음 출력을 볼 수 있습니다.

OK

이는 값이 성공적으로 설정되었음을 의미합니다.

이제 GET 명령을 사용하여 값을 검색해 보겠습니다. GET 명령은 하나의 인수를 받습니다: 키입니다. mykey의 값을 검색해 보겠습니다.

GET mykey

다음 출력을 볼 수 있습니다.

"Hello Redis"

이는 Redis 에서 문자열 값을 성공적으로 저장하고 검색했음을 확인합니다.

다른 예제를 시도해 보겠습니다. 이번에는 숫자를 문자열로 저장해 보겠습니다.

SET counter 100
GET counter

다음과 같은 출력을 볼 수 있습니다.

"100"

Redis 는 이 값을 숫자임에도 불구하고 문자열로 처리합니다.

EXISTS 명령을 사용하여 키가 존재하는지 확인할 수도 있습니다.

EXISTS mykey

다음 출력을 볼 수 있습니다.

(integer) 1

이는 mykey 키가 존재함을 나타냅니다. 키가 존재하지 않으면 명령은 (integer) 0을 반환합니다.

마지막으로, DEL 명령을 사용하여 키를 삭제해 보겠습니다.

DEL mykey

다음 출력을 볼 수 있습니다.

(integer) 1

이는 mykey 키가 성공적으로 삭제되었음을 나타냅니다.

이제 mykey의 값을 다시 가져오려고 하면 다음과 같습니다.

GET mykey

다음 출력을 볼 수 있습니다.

(nil)

이는 키가 삭제되었음을 확인합니다.

명령이 기록되도록 하려면 redis-cli를 종료하는 것을 잊지 마십시오. 다음을 입력합니다.

exit

그러면 일반 터미널 프롬프트로 돌아갑니다.

LPUSH 및 LRANGE 를 사용하여 목록 사용

이 단계에서는 Redis 리스트를 사용하여 정렬된 데이터 컬렉션을 저장하고 검색하는 방법을 살펴보겠습니다. Redis 리스트는 연결 리스트 (linked list) 로 구현되어 리스트의 시작 또는 끝에서 요소를 추가하고 제거하는 데 효율적입니다. LPUSHLRANGE 명령에 중점을 둡니다.

redis-cli 명령줄 도구를 계속 사용합니다. 아직 연결되지 않은 경우 LabEx VM 에서 터미널을 열고 다음을 입력합니다.

redis-cli

이제 LPUSH 명령을 사용하여 리스트를 만들고 몇 가지 요소를 추가해 보겠습니다. LPUSH는 리스트의 왼쪽 (head) 에 요소를 추가합니다. LPUSH 명령은 두 개 이상의 인수를 받습니다: 리스트의 키와 추가할 값입니다. mylist라는 리스트를 만들고 item1, item2, item3 값을 추가해 보겠습니다.

LPUSH mylist item1

다음 출력을 볼 수 있습니다.

(integer) 1

이는 리스트에 하나의 요소가 추가되었음을 의미합니다. LPUSH의 반환 값은 작업 후 리스트의 길이입니다.

이제 다른 항목을 추가해 보겠습니다.

LPUSH mylist item2
(integer) 2
LPUSH mylist item3
(integer) 3

이제 LRANGE 명령을 사용하여 리스트의 요소를 검색해 보겠습니다. LRANGE는 리스트에서 요소 범위를 반환합니다. LRANGE 명령은 세 개의 인수를 받습니다: 리스트의 키, 시작 인덱스 및 종료 인덱스입니다. 인덱스는 0 부터 시작하므로 첫 번째 요소는 인덱스 0 에 있습니다. 리스트의 모든 요소를 검색하려면 시작 인덱스 0 과 종료 인덱스 -1 을 사용할 수 있습니다.

LRANGE mylist 0 -1

다음 출력을 볼 수 있습니다.

1) "item3"
2) "item2"
3) "item1"

LPUSH가 리스트의 시작 부분에 요소를 추가하기 때문에 요소가 추가한 역순으로 반환되는 것을 알 수 있습니다.

몇 가지 항목을 더 리스트에 추가해 보겠습니다.

LPUSH mylist item4
LPUSH mylist item5

이제 리스트의 처음 3 개 요소 (인덱스 0~2) 를 검색해 보겠습니다.

LRANGE mylist 0 2

다음 출력을 볼 수 있습니다.

1) "item5"
2) "item4"
3) "item3"

음수 인덱스를 사용하여 리스트의 끝에서 요소에 액세스할 수도 있습니다. 예를 들어, 리스트의 마지막 요소를 검색하려면 인덱스 -1 을 사용할 수 있습니다.

LRANGE mylist -1 -1

다음 출력을 볼 수 있습니다.

1) "item1"

명령이 기록되도록 하려면 redis-cli를 종료하는 것을 잊지 마십시오. 다음을 입력합니다.

exit

그러면 일반 터미널 프롬프트로 돌아갑니다.

SADD 및 SMEMBERS 를 사용하여 Set 관리

이 단계에서는 Redis 세트를 사용하여 고유 요소의 정렬되지 않은 컬렉션을 저장하고 관리하는 방법을 살펴보겠습니다. Redis 세트는 고유 방문자 추적, 태그 저장 또는 객체 간의 관계 관리와 같은 작업에 유용합니다. SADDSMEMBERS 명령에 중점을 둡니다.

redis-cli 명령줄 도구를 계속 사용합니다. 아직 연결되지 않은 경우 LabEx VM 에서 터미널을 열고 다음을 입력합니다.

redis-cli

이제 SADD 명령을 사용하여 세트를 만들고 몇 가지 멤버를 추가해 보겠습니다. SADD는 하나 이상의 멤버를 세트에 추가합니다. SADD 명령은 두 개 이상의 인수를 받습니다: 세트의 키와 추가할 멤버입니다. myset이라는 세트를 만들고 member1, member2, member3 멤버를 추가해 보겠습니다.

SADD myset member1

다음 출력을 볼 수 있습니다.

(integer) 1

이는 세트에 하나의 멤버가 추가되었음을 의미합니다. SADD의 반환 값은 세트에 추가된 멤버의 수입니다 (이미 존재하는 멤버 제외).

이제 다른 항목을 추가해 보겠습니다.

SADD myset member2
(integer) 1
SADD myset member3
(integer) 1

이제 SMEMBERS 명령을 사용하여 세트의 멤버를 검색해 보겠습니다. SMEMBERS는 세트의 모든 멤버를 반환합니다. SMEMBERS 명령은 하나의 인수를 받습니다: 세트의 키입니다.

SMEMBERS myset

다음 출력을 볼 수 있습니다 (세트는 정렬되지 않으므로 멤버의 순서는 다를 수 있습니다).

1) "member3"
2) "member2"
3) "member1"

세트에 중복 멤버를 추가해 보겠습니다.

SADD myset member1

다음 출력을 볼 수 있습니다.

(integer) 0

이는 member1이 이미 세트에 있었기 때문에 새 멤버가 추가되지 않았음을 나타냅니다.

몇 개의 멤버를 더 세트에 추가해 보겠습니다.

SADD myset member4
SADD myset member5

이제 모든 멤버를 다시 검색해 보겠습니다.

SMEMBERS myset

다음과 유사한 출력을 볼 수 있습니다.

1) "member5"
2) "member4"
3) "member3"
4) "member2"
5) "member1"

순서는 다를 수 있습니다.

명령이 기록되도록 하려면 redis-cli를 종료하는 것을 잊지 마십시오. 다음을 입력합니다.

exit

그러면 일반 터미널 프롬프트로 돌아갑니다.

HSET 및 HGET 을 사용하여 Hash 탐색

이 단계에서는 Redis 해시를 사용하여 필드 - 값 쌍의 컬렉션을 저장하고 검색하는 방법을 살펴보겠습니다. Redis 해시는 여러 속성을 가진 객체를 나타내는 데 유용합니다. HSETHGET 명령에 중점을 둡니다.

redis-cli 명령줄 도구를 계속 사용합니다. 아직 연결되지 않은 경우 LabEx VM 에서 터미널을 열고 다음을 입력합니다.

redis-cli

이제 HSET 명령을 사용하여 해시를 만들고 몇 가지 필드와 값을 추가해 보겠습니다. HSET은 해시의 필드 값을 설정합니다. HSET 명령은 세 개의 인수를 받습니다: 해시의 키, 필드 및 값입니다. myhash라는 해시를 만들고 field1 필드를 value1 값으로 설정해 보겠습니다.

HSET myhash field1 value1

다음 출력을 볼 수 있습니다.

(integer) 1

이는 해시에 새 필드가 추가되었음을 의미합니다. HSET의 반환 값은 필드가 해시에 처음 추가된 경우 1 이고, 필드가 이미 존재하고 값이 업데이트된 경우 0 입니다.

이제 다른 필드를 추가해 보겠습니다.

HSET myhash field2 value2
(integer) 1

이제 HGET 명령을 사용하여 필드의 값을 검색해 보겠습니다. HGET은 해시의 필드 값을 가져옵니다. HGET 명령은 두 개의 인수를 받습니다: 해시의 키와 필드입니다. myhash에서 field1의 값을 검색해 보겠습니다.

HGET myhash field1

다음 출력을 볼 수 있습니다.

"value1"

이는 해시에서 필드 - 값 쌍을 성공적으로 저장하고 검색했음을 확인합니다.

기존 필드의 값을 업데이트해 보겠습니다.

HSET myhash field1 newvalue1

다음 출력을 볼 수 있습니다.

(integer) 0

이는 필드가 이미 존재하고 해당 값이 업데이트되었음을 나타냅니다.

이제 field1의 값을 다시 검색해 보겠습니다.

HGET myhash field1

다음 출력을 볼 수 있습니다.

"newvalue1"

이는 값이 업데이트되었음을 확인합니다.

몇 개의 필드를 더 해시에 추가해 보겠습니다.

HSET myhash field3 value3
HSET myhash field4 value4

명령이 기록되도록 하려면 redis-cli를 종료하는 것을 잊지 마십시오. 다음을 입력합니다.

exit

그러면 일반 터미널 프롬프트로 돌아갑니다.

요약

이 랩에서는 문자열부터 시작하여 기본적인 Redis 데이터 구조를 탐구했습니다. redis-cli를 사용하여 Redis 서버에 연결하는 방법을 배우고 SET 명령을 사용하여 키와 관련된 문자열 값을 저장했습니다. 그런 다음 GET 명령을 사용하여 이러한 값을 검색했습니다. 또한 Redis 가 문자열로 저장된 숫자를 처리하는 방식도 살펴보았습니다.

또한 LPUSHLRANGE를 사용하여 목록을 생성하고 조작하는 방법, SADDSMEMBERS를 사용하여 세트를 관리하는 방법, HSETHGET을 사용하여 해시를 탐색하는 방법을 배웠습니다. 이러한 명령을 사용하면 Redis 에서 다양한 유형의 데이터를 저장하고 검색할 수 있으므로 다양한 애플리케이션에 유용한 도구가 됩니다. 각 단계를 완료한 후에는 redis-cli를 종료하여 명령이 확인을 위해 기록되도록 하는 것을 잊지 마십시오.