Redis 트랜잭션

RedisBeginner
지금 연습하기

소개

이 랩에서는 Redis 트랜잭션을 탐색합니다. Redis 트랜잭션을 사용하면 여러 명령을 단일 원자적 작업으로 실행하여 데이터 일관성을 보장할 수 있습니다. MULTI 명령으로 트랜잭션을 시작하고, 명령을 큐에 넣은 다음, 트랜잭션을 실행하거나 취소하는 방법을 배우게 됩니다. 트랜잭션 내에서 키를 설정하고, 값을 가져오고, 카운터를 증가시키는 연습을 하게 됩니다.

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

Redis 트랜잭션 시작하기

이 단계에서는 MULTI 명령을 사용하여 Redis 에서 트랜잭션을 시작하는 방법을 배웁니다. Redis 트랜잭션은 일련의 명령이 단일 원자적 단위로 실행되도록 보장합니다. 이는 모든 명령이 성공하거나 아무도 성공하지 않음을 의미하며, 데이터 무결성을 보장합니다.

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

redis-cli

이제 redis-cli 환경에 들어왔으므로 트랜잭션을 시작할 수 있습니다. 다음 명령을 입력하고 Enter 키를 누릅니다.

MULTI

다음과 같은 출력이 표시됩니다.

OK

이는 Redis 가 트랜잭션 모드로 진입했음을 확인합니다. 이후에 입력하는 모든 명령은 EXEC 명령을 사용할 때 함께 큐에 저장되었다가 실행됩니다.

첫 번째 명령을 큐에 넣겠습니다. mykey라는 키에 myvalue 값을 설정합니다. 다음 명령을 입력하고 Enter 키를 누릅니다.

SET mykey "myvalue"

출력은 다음과 같아야 합니다.

QUEUED

이는 SET 명령이 트랜잭션 큐에 성공적으로 추가되었음을 나타냅니다. Redis 에 명시적으로 실행하라고 지시할 때까지 실행되지 않습니다.

다음 단계를 위해 redis-cli 환경을 열어 둡니다.

추가 명령 큐잉 및 트랜잭션 실행

이 단계에서는 트랜잭션 큐에 더 많은 명령을 추가한 다음 EXEC 명령을 사용하여 전체 트랜잭션을 실행합니다.

이제 mykey의 값을 가져오는 명령을 큐에 넣겠습니다.

GET mykey

다음과 같은 출력이 표시됩니다.

QUEUED

다음으로, anotherkey라는 다른 키에 anothervalue 값을 설정하는 명령을 추가합니다.

SET anotherkey "anothervalue"

출력은 다음과 같아야 합니다.

QUEUED

마지막으로 mycounter라는 카운터를 증가시키는 INCR 명령을 큐에 넣습니다. mycounter가 존재하지 않으면 Redis 는 이를 생성하고 증가시키기 전에 0 으로 초기화합니다.

INCR mycounter

다음과 같은 출력이 표시됩니다.

QUEUED

이제 트랜잭션 내에 여러 명령을 큐에 넣었습니다. 이들을 한 번에 모두 실행하려면 EXEC 명령을 사용합니다.

EXEC

출력은 다음과 유사해야 합니다.

1) OK
2) "myvalue"
3) OK
4) (integer) 1

출력을 분석해 보겠습니다.

  • 1) OK: SET mykey "myvalue" 명령의 결과입니다.
  • 2) "myvalue": GET mykey 명령의 결과입니다.
  • 3) OK: SET anotherkey "anothervalue" 명령의 결과입니다.
  • 4) (integer) 1: INCR mycounter 명령의 결과입니다.

트랜잭션 내의 모든 명령은 원자적으로 실행되었습니다.

다음 단계를 위해 redis-cli 환경을 열어 둡니다.

트랜잭션 실행 확인

이 단계에서는 설정한 키의 값을 검색하여 이전 트랜잭션의 명령이 올바르게 실행되었는지 확인합니다.

값을 확인하려면 각 키에 대해 GET 명령을 사용합니다.

GET mykey
GET anotherkey
GET mycounter

다음과 같은 출력이 표시되어야 합니다.

"myvalue"
"anothervalue"
"1"

이는 트랜잭션이 성공적으로 실행되었고 키의 값이 예상대로 업데이트되었음을 확인합니다.

다음 단계를 위해 redis-cli 환경을 열어 둡니다.

DISCARD 로 트랜잭션 취소

이 단계에서는 DISCARD 명령을 사용하여 Redis 트랜잭션을 취소하는 방법을 배웁니다. 큐에 쌓인 명령을 실행하지 않기로 결정했을 때 유용합니다.

먼저 Redis 서버에 연결하고 새 트랜잭션을 시작합니다.

MULTI

이제 몇 가지 명령을 큐에 넣습니다.

SET mykey "newvalue"
INCR mycounter

각 명령에 대해 QUEUED 응답을 보게 될 것입니다.

이제 트랜잭션을 실행하는 대신 취소합니다. DISCARD 명령을 사용합니다.

DISCARD

다음과 같은 출력을 보게 될 것입니다.

OK

이는 트랜잭션이 취소되었고 큐에 쌓인 모든 명령이 폐기되었음을 확인합니다. 확인하려면 mykeymycounter의 값을 확인할 수 있습니다. 이 값들은 업데이트되지 않았어야 합니다.

명령이 기록되도록 redis-cli 환경을 종료하는 것을 잊지 마십시오.

exit

요약

이 실습에서는 Redis 트랜잭션을 사용하여 여러 명령을 원자적으로 (atomically) 실행하는 방법을 배웠습니다. MULTI로 트랜잭션을 시작하고, 명령을 큐에 넣고, EXEC로 트랜잭션을 실행하고, DISCARD로 트랜잭션을 취소하는 연습을 했습니다. 이 지식은 복잡한 작업을 수행할 때 Redis 에서 데이터 일관성을 유지하는 데 매우 중요합니다.