소개
이 랩에서는 기본적인 Redis 데이터 구조를 살펴보고, redis-cli 명령줄 도구를 사용하여 이러한 구조와 상호 작용하는 방법을 배우게 됩니다. 이 랩은 Redis 에서 데이터를 저장하고 검색하는 방법을 이해하는 데 도움이 되는 실습 위주로 구성되었습니다.
먼저 문자열 (String) 을 다루면서 문자열 값을 설정, 가져오기, 존재 여부 확인 및 삭제하는 방법을 배웁니다. 그런 다음, LPUSH 및 LRANGE와 같은 명령을 사용하여 리스트 (List) 를 다룹니다. 다음으로, SADD 및 SMEMBERS를 사용하여 세트 (Set) 를 관리합니다. 마지막으로, HSET 및 HGET을 사용하여 해시 (Hash) 를 탐구합니다. 이러한 실습 경험은 다양한 애플리케이션에서 Redis 를 사용하는 데 필요한 탄탄한 기반을 제공할 것입니다.
간단한 데이터를 위한 문자열 사용
이 단계에서는 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) 로 구현되어 리스트의 시작 또는 끝에서 요소를 추가하고 제거하는 데 효율적입니다. LPUSH 및 LRANGE 명령에 중점을 둡니다.
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 세트는 고유 방문자 추적, 태그 저장 또는 객체 간의 관계 관리와 같은 작업에 유용합니다. SADD 및 SMEMBERS 명령에 중점을 둡니다.
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 해시는 여러 속성을 가진 객체를 나타내는 데 유용합니다. HSET 및 HGET 명령에 중점을 둡니다.
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 가 문자열로 저장된 숫자를 처리하는 방식도 살펴보았습니다.
또한 LPUSH 및 LRANGE를 사용하여 목록을 생성하고 조작하는 방법, SADD 및 SMEMBERS를 사용하여 세트를 관리하는 방법, HSET 및 HGET을 사용하여 해시를 탐색하는 방법을 배웠습니다. 이러한 명령을 사용하면 Redis 에서 다양한 유형의 데이터를 저장하고 검색할 수 있으므로 다양한 애플리케이션에 유용한 도구가 됩니다. 각 단계를 완료한 후에는 redis-cli를 종료하여 명령이 확인을 위해 기록되도록 하는 것을 잊지 마십시오.


