이 튜토리얼에서는 Redis에 저장된 집합(Set) 타입의 값에서 하나 또는 여러 개의 임의(random) 요소를 가져오는 방법을 알아봅니다. 이를 위해 redis-cli에서 SRANDMEMBER 명령어를 사용합니다.
SRANDMEMBER 명령어 문법
redis host:port> SRANDMEMBER <key name> [count]
반환 결과
- (문자열 값) – 키가 존재하고 count 인자가 주어지지 않은 경우
- (nil) – 키가 존재하지 않고 count 인자가 주어지지 않은 경우
- (배열 값) – 키가 존재하고 count 인자가 주어진 경우
- (빈 배열) – 키가 존재하지 않고 count 인자가 주어진 경우
- (에러) – 키는 존재하지만 해당 키에 저장된 값이 집합(Set) 타입이 아닌 경우
count 인자에 따른 동작 방식
SRANDMEMBER 명령어를 키 인자만 사용해 호출하면 집합에서 단일 임의 요소 하나를 반환합니다. 반면 키와 count 인자를 함께 사용하면, count 값에 따라 세 가지 다른 결과가 반환될 수 있습니다.
- count > 0 이고 count ≤ 집합 크기인 경우: 집합에서 중복되지 않는(count개의 서로 다른) 요소로 구성된 배열을 반환합니다.
- count > 0 이고 count > 집합 크기인 경우: 집합의 모든 요소를 포함하는 배열을 반환합니다.
- count < 0인 경우: count개(절댓값 기준)의 요소로 구성된 배열을 반환하며, 이 배열에는 중복된 요소가 포함될 수 있습니다.
예제
다음은 redis-cli에서 SRANDMEMBER 명령어를 실행한 실제 화면입니다.

참고 자료
지금까지 Redis 데이터스토어에 저장된 집합 값에서 하나 이상의 임의 요소를 가져오는 방법을 살펴보았습니다. 이 글이 도움이 되었다면 댓글로 의견을 남겨주시고, 주변에도 널리 공유해 주세요!