이번 튜토리얼에서는 Redis 데이터 저장소에 저장된 문자열 값의 지정된 인덱스 위치에 비트 값을 설정하는 방법을 알아보겠습니다. 이를 위해 Redis의 SETBIT 명령어를 사용합니다.
SETBIT 명령어란?
SETBIT 명령어는 키에 저장된 문자열 값에서 지정된 오프셋(인덱스) 위치의 비트 값을 설정합니다.
이 명령어의 동작 방식은 다음과 같습니다.
- 지정한 인덱스가 현재 문자열 길이보다 크면, 문자열은 0비트로 채워진 연속된 공간으로 간주되어 자동으로 확장됩니다.
- 키가 존재하지 않는 경우, 먼저 빈 문자열로 생성됩니다. 이때 인덱스는 항상 범위를 벗어난 것으로 처리되며 해당 위치의 기존 비트 값은 0입니다.
- 키가 존재하지만 저장된 값이 문자열 타입이 아닌 경우(예: 리스트, 해시 등) 오류가 반환됩니다.
문법
redis host:port> SETBIT <keyname> <index> <bit value>
- keyname: 비트 값을 설정할 대상 키
- index: 비트를 설정할 위치(오프셋), 0부터 시작
- bit value: 설정할 비트 값 (0 또는 1)
반환값
- (integer): 해당 인덱스에 이전에 저장되어 있던 비트 값 (0 또는 1)
- Error: 키가 존재하지만 저장된 값이 문자열 타입이 아닌 경우
사용 예제
아래 예제는 SETBIT 명령어를 사용하여 키에 저장된 문자열의 특정 인덱스에 비트 값을 설정하는 과정을 보여줍니다.

명령어 실행 시 반환되는 정수 값은 해당 인덱스에 이전에 저장되어 있던 비트 값입니다. 예를 들어 처음 빈 문자열에 SETBIT를 적용하면 항상 0이 반환되며, 같은 인덱스에 다시 0 또는 1을 설정하면 이전에 설정했던 값이 반환됩니다.
참고 자료
- Redis 공식 문서 - SETBIT Command Docs
지금까지 Redis 데이터 저장소에 저장된 문자열 값의 특정 인덱스에 비트 값을 설정하는 방법에 대해 알아보았습니다. 내용이 유용했다면 댓글로 의견을 남겨주시고, 주변에도 공유해 주세요!