데이터 세트 {1, 2, 3, 3, 5, 5,}와 같은 예를 통해 카디널리티 통계가 무엇인지 직접적으로 이해할 수 있으며, 이 데이터 세트의 카디널리티 세트는 {1, 2, 3, 5} , 카디널리티(반복되지 않는 요소)는 4입니다. 즉, 반복되지 않는 요소의 개수입니다.
1.2 카디널리티 통계 사용의 이점
각 HyperLogLog 키의 메모리 비용은 12KB에 불과하며 2^64에 가까운 다양한 요소의 카디널리티를 계산할 수 있습니다. 이는 카디널리티를 계산할 때 더 많은 메모리를 소비하는 컬렉션과 뚜렷한 대조를 이룹니다. 요소가 많을수록 더 많은 메모리가 소비됩니다. 메모리 관점에서 비교하려면 Hyperloglog가 첫 번째 선택입니다.
1.3 응용 시나리오
웹 페이지의 uv(한 사람이 웹 사이트를 여러 번 방문하지만 여전히 한 사람으로 계산됩니다)
전통적인 방법: set(set는 중복을 허용하지 않기 때문에 반복하면 덮어쓰기) 사용자 ID를 저장한 후 집합에 포함된 요소 수를 표준 판단으로 계산할 수 있습니다. 이런 식으로 많은 수의 사용자 ID를 저장하면 더 번거롭고 많은 메모리를 차지하게 됩니다. 대형 웹사이트. 우리의 목적은 사용자 ID를 저장하는 것이 아니라 계산하는 것입니다.
HyperLogLog 사용: HyperLogLog 키에는 12KB만 필요하지만 계산할 수 있는 숫자가 매우 방대하고 차지하는 메모리 공간이 크게 줄어듭니다.
1.4 참고 사항
내결함성이 허용된다면(오류율 0.81%, 계산 시 무시 가능) Hyperloglog를 반드시 사용할 수 있습니다! 내결함성이 허용되지 않으면 set 또는 자신의 데이터 유형을 사용하십시오!
1.5 기본 명령
일련번호
명령 및 설명
1
PFADD 키 요소 [요소 ...] 특정 요소를 HyperLogLog에 추가합니다.
2
PFCOUNT key [key ...] 주어진 HyperLogLog에 대한 카디널리티 추정치를 반환합니다.
3
PFMERGE destkey sourcekey [sourcekey ...] 여러 HyperLogLog를 하나의 HyperLogLog로 병합
1.6
127.0.0.1:6379> pfadd mykey1 a b c d e f #给第一组添加数据
(integer) 1
127.0.0.1:6379> pfcount mykey1 #统计mykey1的基数数量
(integer) 6
127.0.0.1:6379> pfadd mykey2 e e f j #给第二组添加数据
(integer) 1
127.0.0.1:6379> pfcount mykey2 #统计mykey2的基数数量
(integer) 3
127.0.0.1:6379> pfmerge mykey3 mykey1 mykey2 # 合并两组 mykey1 mykey2 => mykey3 并集
OK
127.0.0.1:6379> pfcount mykey3 #统计mykey3的基数数量
(integer) 7
로그인 후 복사
사용 2. 지리 공간적 지리적 위치
2.1 소개
Re dis3.2 버전 지리 공간, 처음 출시된 이 앱은 지리적 위치 정보, 두 장소 사이의 거리, 반경 수 마일 내에 사는 사람 수를 계산할 수 있습니다.
2.2 사용 시나리오
???? 친구 위치
???? 주변 사람 보기
???? 택시 거리 계산
2.3 기본 명령어
number
명령 및 설명
1
GEOADD 키 경도 위도 위치 이름지정된 키
2
GEOPOS 키 위치 이름에 지정된 지리공간 위치(위도, 경도, 이름)를 추가합니다. 키에서 주어진 모든 위치 요소의 위치(경도 및 위도)를 반환합니다.
3
GEODIST 키 위치 1 위치 2 단위 두 위치 중 하나가 존재하지 않으면 명령은 null 값을 반환합니다.
4
GEORADIUS 키 경도 및 위도 범위 수치 단위
주어진 경도와 위도를 중심으로 특정 반경 내의 요소를 찾습니다
5
GEORADIUSBYMEMBER 키 위치 거리 숫자 단위 지정된 범위 내에 있는 요소를 찾으세요. 중심점은 주어진 위치 요소에 의해 결정됩니다.
6
GEOHASH 키 위치 1 위치 2는 11자의 Geohash 문자열을 반환합니다. 끈이 가까울수록 거리도 가까워집니다.