Computer >> 컴퓨터 >  >> 프로그래밍 >> Redis

Redis에서 여러 문자열 값 한 번에 설정하기 – MSET·MSETNX 명령어 완벽 가이드

Redis에서는 MSETMSETNX 명령어를 활용해 여러 문자열 값을 각각의 키에 한 번의 호출로 저장할 수 있습니다. 이 글에서는 두 명령어의 동작 방식, 문법, 반환값 그리고 실전 예제까지 자세히 살펴보겠습니다.

MSET 명령어란?

MSET은 여러 개의 문자열 값을 지정된 키들에 각각 설정하는 명령어입니다. 지정한 키 중 하나라도 이미 존재한다면, 키의 타입과 관계없이 기존 값이 새로운 값으로 덮어써지며(overwrite), 해당 키에 설정되어 있던 만료 시간(TTL)도 함께 제거됩니다.

MSET은 원자적(atomic)으로 동작합니다. 즉, 모든 키가 한 번에 동시에 설정되므로 실행 도중 일부 키만 적용되는 상황은 발생하지 않으며, 이 명령어는 실패하지 않습니다.

문법

redis host:post> MSET <keyname-1> <value-1> <keyname-2> <value-2> <keyname-3> <value-3>

반환값

- (string) OK : 모든 키가 성공적으로 설정되었을 때 반환됩니다.

실행 예제

Redis에서 여러 문자열 값 한 번에 설정하기 – MSET·MSETNX 명령어 완벽 가이드

MSETNX 명령어란?

MSETNX(MSET if Not eXists) 역시 여러 문자열 값을 지정된 키들에 설정하는 명령어입니다. 다만 MSET과 달리, 지정한 키 중 하나라도 이미 존재하면 전체 작업이 실패하며 어떤 키도 설정되지 않습니다.

MSETNX 역시 원자적으로 동작하기 때문에, 클라이언트 입장에서는 일부 키만 업데이트되고 나머지는 그대로인 중간 상태를 결코 볼 수 없습니다.

문법

redis host:post> MSETNX <keyname-1> <value-1> <keyname-2> <value-2> <keyname-3> <value-3>

반환값

- 1 : 작업이 성공하여 모든 문자열 값이 설정된 경우
- 0 : 작업이 실패한 경우 (키 중 최소 하나가 이미 존재하며, 어떤 값도 설정되지 않음)

실행 예제

Redis에서 여러 문자열 값 한 번에 설정하기 – MSET·MSETNX 명령어 완벽 가이드

MSET과 MSETNX의 핵심 차이점

  • 기존 키 처리 방식: MSET은 기존 키가 있으면 타입과 관계없이 무조건 덮어쓰지만, MSETNX는 기존 키가 하나라도 있으면 아무것도 설정하지 않습니다.
  • 반환값: MSET은 항상 OK를 반환하지만, MSETNX는 성공 시 1, 실패 시 0을 반환합니다.
  • 활용 사례: 단순 대량 쓰기에는 MSET이 적합하고, 기존 데이터를 절대 덮어쓰지 않아야 하는 조건부 저장에는 MSETNX가 적합합니다.

참고 자료

  1. MSET 명령어 공식 문서 (Redis Docs)
  2. MSETNX 명령어 공식 문서 (Redis Docs)

지금까지 Redis에서 MSET, MSETNX 명령어를 사용해 여러 문자열 값을 각각의 키에 설정하는 방법을 알아보았습니다. 두 명령어의 차이점만 잘 기억하면 대량 데이터 처리와 조건부 쓰기를 안전하게 구현할 수 있습니다. 글이 유익했다면 댓글로 의견을 남겨주시고, 주변에도 공유해 주세요!