이번 튜토리얼에서는 Redis의 GETSET 명령어를 사용하여 특정 키에 새로운 문자열 값을 설정하고, 동시에 기존(이전) 문자열 값을 반환받는 방법을 알아보겠습니다.
GETSET 명령어란?
GETSET 명령어는 지정된 키에 새로운 문자열 값을 설정한 뒤, 그 키에 저장되어 있던 이전 문자열 값을 반환합니다. 이 명령어는 원자적(atomically)으로 동작하기 때문에, 값을 읽고 쓰는 과정 사이에 다른 클라이언트의 개입 없이 한 번의 연산으로 처리됩니다.
- 키가 존재하지 않는 경우:
(nil)을 반환합니다. - 키는 존재하지만 저장된 값이 문자열이 아닌 경우: 에러를 반환합니다.
문법(Syntax)
redis host:port> GETSET <keyname> <value>
반환값(Output)
(string) reply : 키에 저장되어 있던 이전 문자열 값
(nil) reply : 키가 존재하지 않는 경우
Error : 키는 존재하지만 저장된 값이 문자열이 아닌 경우
사용 예제
redis host:port> SET mykey "hello"
"OK"
redis host:port> GETSET mykey "world"
"hello"
redis host:port> GET mykey
"world"
위 예제에서 볼 수 있듯이, GETSET은 새 값 "world"를 설정하는 동시에 이전 값인 "hello"를 반환합니다. 참고로 GETSET은 Redis 6.2 버전부터 SET 명령어에 GET 옵션(SET key value GET)이 추가되면서 대체 가능해졌지만, 하위 버전 호환성을 위해 여전히 널리 사용됩니다.
참고 자료
- Redis 공식 문서 – GETSET Command Docs
지금까지 Redis 데이터 스토어에서 키에 새 문자열 값을 설정하고 이전 값을 반환하는 방법에 대해 알아보았습니다. 이 글이 도움이 되었다면 댓글로 의견을 남겨주시고, 주변에도 널리 공유해 주세요!