Redis - 데이터타입 - HyperLogLog 알아보기

     

     

     

    이번 포스팅에서 Redis 데이터 타입은Hyperloglogs 에 대해서 알아보도록 하겠습니다.

     

     

     

       Linux Redis 이전글

     

     

     

    https://server-talk.tistory.com/471 - redis - In-Memory - 알아보기

     

     

    https://server-talk.tistory.com/472 - Redis - 서버 설치 및 기본설정 알아보기

     

     

    https://server-talk.tistory.com/473 - Redis - Redis-cli 기본 사용법

     

     

    https://server-talk.tistory.com/474 - Redis - Redis Desktop Manager Tool

     

     

    https://server-talk.tistory.com/475 - phpredis 설치 알아보기

     

     

    https://server-talk.tistory.com/476 - Redis 활용하기 - phpredis 세션관리하기

     

     

    https://server-talk.tistory.com/478 - Redis - 운영시 주의해야되는 명령어

     

     

    https://server-talk.tistory.com/481 - Redis - 데이터타입 - String 알아보기

     

     

    https://server-talk.tistory.com/482 - Redis - 데이터타입 - Lists 알아보기

     

     

    https://server-talk.tistory.com/483 - Redis - 데이터타입 - SETS 알아보기

     

     

    https://server-talk.tistory.com/485 - Redis - 데이터타입 - sorted set 알아보기 

     

     

     

     

       Redis DataType - HyperLogLog 이란?

     

     

     

     

    우리는 일반적으로 슈퍼마켓에서 물건을 계산하거나 물건의 개수를 새는 등등의 경우 정확한 값이 필요합니다 하지만 몸무게나 영화 관객 수 등등 얘기하라를 할 때 정확히 몸무게를 소수점 단위로 얘기하거나 영화 관객 수를 한 자릿수까지 얘기하지 않고 대략적인 수치를 말합니다

    그러나 병원의 자료를 제출하거나 통계자료를 제출하는 경우는 이러한 상황이 불가능하겠지만은 일반적으로 주변 사람들에게 납득이 가는 어느 정도의 오차 범위 한도 내에서는 정확한 값이 아닌 근삿값으로 수치를 전달해도 문제가 없습니다.

     

     

     

     

    서버에서도 마찬가지입니다 예로 어떠한 홈페이지의 방문자가 정확히 1억 명이라면 오랜 시간을 소요해서 데이터를 조회하는 것보다는 9천900명, 9천800명 등등 대략적인 근삿값으로 빠르게 데이터를 조회하는 게 자원적으로나 비용적으로 효과적이게 됩니다.

     

     

     

     

    HyperLogLog 는 Sets과 동일하게 순서와 상관없이 중복되지 않는 문자열의 모음 입니다 Sets과는 다르게 많은 양의 데이터를 카운트할때 HyperLogLog 가 효과적입니다

     

    HyperLogLog 의 저장되는 모든값은 몇백, 몇천만건의 데이터라도 상관없이 모두 12KB 입니다.

     

     

     

     

    한번 저장된 데이터의 값을 다시 불러올 수 없으므로 경우에 따라서 데이터를 보호하는 목적으로도 사용할 수 있습니다

     

    예로 웹사이트에 방문한 IP의 개수, 크롤링한 URL의 개수 등등과 같이 데이터의 크기가 엄청 크고 독특한 값을 계산할 때 많이 사용됩니다.

     

     

     

     

    HyperLogLog 에서는 독특한점이 있습니다 저장되어 있는 데이터가 없다면 0을 출력하고 있다면 1를 출력하게됩니다 우리가 일반적으로 프로그래밍할때 배우는 참(1), 거짓(0) 으로 이해하시면 좋을것 같습니다.

     

     

     

       Redis DataType - HyperLogLog 명령어 사용법

     

     

     

    PFADD Command

     

    사용법 : PFADD [key] [item] [item]

     

    127.0.0.1:6379> PFADD WEBSERVER NGINX IIS APACHE
    (integer) 1
    127.0.0.1:6379> PFADD WAS PHP-FPM ASP
    (integer) 1

     

    PFADD 명령어는 Key의 item를 추가하는 명령이며 Key의 item가 없을 경우 1을 출력하고 없을 경우 0을 출력합니다.

     

     

     

    PFCOUNT Command

     

    사용법 : PFCOUNT [key]

     

    127.0.0.1:6379> PFCOUNT WEBSERVER
    (integer) 3

     

    PFCOUNT 명령어는 Key의 itemD의 개수를 조회하는 명령어 입니다.

     

     

     

    PFMERGE Command

     

    사용법 : PFMERGE [key] [Key] [Key]

     

    PFMERGE SERVER WEBSERVER WAS

     

    PFMERGE 명령어는 2개의 HyperLogLog 를 1개의 HyperLogLog 로 합칠수 있습니다.

    Posted by 서버이야기