Redis HyperLogLog 연산

RedisBeginner
지금 연습하기

소개

이 랩에서는 Redis HyperLogLog 연산을 탐구합니다. HyperLogLog 는 Redis 에서 매우 큰 데이터 세트에서도 집합 내 고유 요소의 수를 추정할 수 있는 강력한 데이터 구조입니다. 이는 카디널리티 추정 (cardinality estimation) 이라고 합니다. PFADD를 사용하여 항목을 추가하고, PFCOUNT를 사용하여 고유 항목을 계산하며, PFMERGE를 사용하여 HyperLogLog 를 병합하는 방법을 배우게 됩니다. 이 랩은 고유 사용자를 효율적으로 추적하는 실질적인 경험을 제공할 것입니다.

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

PFADD 로 항목 추가하기

이 단계에서는 PFADD 명령을 사용하여 HyperLogLog 에 항목을 추가하는 방법을 배웁니다. HyperLogLog 가 존재하지 않으면 PFADD가 자동으로 생성합니다.

PFADD 이해

PFADD 명령은 하나 이상의 요소를 HyperLogLog 에 추가합니다.

구문:

PFADD key element [element ...]
  • key: HyperLogLog 의 이름입니다.
  • element: HyperLogLog 에 추가할 요소입니다.

예시:

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

redis-cli

이제 myhyperloglog라는 HyperLogLog 를 생성하고 몇 가지 항목을 추가해 보겠습니다.

PFADD myhyperloglog item1 item2 item3

다음과 같은 출력을 볼 수 있습니다.

(integer) 1

(integer) 1 응답은 HyperLogLog 에 적어도 하나의 요소가 추가되었음을 나타냅니다. 모든 요소가 새로운 (고유한) 요소였음을 의미하는 것은 아닙니다.

명령 실행 후 redis-cli를 종료하는 것을 잊지 마세요.

exit

실습:

  1. redis-cli를 사용하여 Redis 서버에 연결합니다.
  2. users라는 HyperLogLog 를 생성합니다.
  3. 다음 사용자 ID 를 users HyperLogLog 에 추가합니다: user1, user2, user3, user4, user5.
  4. redis-cli를 종료합니다.
PFADD users user1 user2 user3 user4 user5
exit

다음 단계에서는 PFCOUNT 명령을 사용하여 고유 사용자 수를 추정하는 방법을 배웁니다.

PFCOUNT 로 고유 항목 수 세기

이 단계에서는 PFCOUNT 명령을 사용하여 HyperLogLog 내 고유 항목 수를 추정하는 방법을 배웁니다.

PFCOUNT 이해

PFCOUNT 명령은 HyperLogLog 가 관찰한 집합의 카디널리티 (고유 요소의 수) 에 대한 근사치를 반환합니다. HyperLogLog 가 정확한 개수가 아닌 추정치를 제공한다는 점을 기억하는 것이 중요합니다.

구문:

PFCOUNT key
  • key: HyperLogLog 의 이름입니다.

예시:

이전 단계에서 계속해서 users HyperLogLog 내 고유 사용자 수를 추정해 보겠습니다.

redis-cli를 사용하여 Redis 서버에 연결합니다.

redis-cli

이제 PFCOUNT 명령을 사용합니다.

PFCOUNT users

다음과 유사한 출력을 볼 수 있습니다.

(integer) 5

출력 (integer) 5는 HyperLogLog 가 users HyperLogLog 에 약 5 명의 고유 사용자가 있다고 추정함을 나타냅니다.

redis-cli를 종료합니다.

exit

실습:

  1. redis-cli를 사용하여 Redis 서버에 연결합니다.
  2. PFCOUNT 명령을 사용하여 users HyperLogLog 내 고유 사용자 수를 추정합니다.
  3. redis-cli를 종료합니다.
PFCOUNT users
exit

이제 중복 항목을 포함하여 더 많은 사용자를 users HyperLogLog 에 추가한 다음 다시 계산해 보겠습니다.

redis-cli
PFADD users user3 user6 user7
PFCOUNT users
exit

다음 단계에서는 HyperLogLog 를 병합하는 방법을 배웁니다.

PFMERGE 로 HyperLogLog 병합하기

이 단계에서는 PFMERGE 명령을 사용하여 여러 HyperLogLog 를 단일 HyperLogLog 로 병합하는 방법을 배웁니다. 이는 여러 HyperLogLog 에 데이터가 분산되어 있고 총 고유 요소에 대한 추정치를 얻고 싶을 때 유용합니다.

PFMERGE 이해

PFMERGE 명령은 여러 HyperLogLog 를 대상 HyperLogLog 로 병합합니다. 대상 HyperLogLog 는 모든 소스 HyperLogLog 의 요소의 합집합을 포함합니다.

구문:

PFMERGE destkey sourcekey [sourcekey ...]
  • destkey: 대상 HyperLogLog 의 이름 (병합된 결과가 저장될 위치). 존재하지 않으면 생성됩니다. 존재하면 덮어쓰여집니다.
  • sourcekey: 병합할 소스 HyperLogLog 의 이름입니다.

예시:

new_users라는 새 HyperLogLog 를 생성하고 여기에 몇 명의 사용자를 추가해 보겠습니다.

redis-cli
PFADD new_users user8 user9 user10
exit

이제 usersnew_users HyperLogLog 를 all_users라는 새 HyperLogLog 로 병합해 보겠습니다.

redis-cli
PFMERGE all_users users new_users

다음과 같은 출력을 볼 수 있습니다.

OK

OK 응답은 병합 작업이 성공했음을 나타냅니다.

이제 all_users HyperLogLog 에서 고유 사용자 수를 추정해 보겠습니다.

PFCOUNT all_users
exit

다음과 유사한 출력을 볼 수 있습니다.

(integer) 7

출력 (integer) 7은 HyperLogLog 가 병합된 all_users HyperLogLog 에 약 7 명의 고유 사용자가 있다고 추정함을 나타냅니다.

실습:

  1. redis-cli를 사용하여 Redis 서버에 연결합니다.
  2. PFMERGE 명령을 사용하여 usersnew_users HyperLogLog 를 all_users라는 새 HyperLogLog 로 병합합니다.
  3. PFCOUNT 명령을 사용하여 all_users HyperLogLog 에서 고유 사용자 수를 추정합니다.
  4. redis-cli를 종료합니다.
PFMERGE all_users users new_users
PFCOUNT all_users
exit

이것으로 Redis 에서 HyperLogLog 를 사용하는 랩이 완료되었습니다. 항목 추가, 고유 항목 수 세기, HyperLogLog 병합 방법을 배웠습니다.

요약

이 랩에서는 Redis 에서 PFADD 명령을 사용하여 HyperLogLog 데이터 구조에 요소를 추가하는 방법을 배웠습니다. PFADD 명령은 요소 자체를 저장하지 않고도 집합의 카디널리티 (cardinality) 를 추정하기 위해 HyperLogLog 를 효율적으로 업데이트합니다. 또한 PFCOUNT를 사용하여 HyperLogLog 의 카디널리티를 추정하고 PFMERGE를 사용하여 여러 HyperLogLog 를 하나로 병합하는 방법을 배웠습니다. 이는 대규모 데이터 세트에서 고유 요소를 추적하는 강력하고 효율적인 방법을 제공합니다.