zoukankan      html  css  js  c++  java
  • redis 的 HyperLogLog

    Redis 在 2.8.9 版本添加了 HyperLogLog 结构。

    Redis HyperLogLog 是用来做基数统计的算法

    HyperLogLog 的优点是,在输入元素的数量或者体积非常非常大时,计算基数所需的空间总是固定 的、并且是很小的

    HyperLogLog 只会根据输入元素来计算基数,而不会储存输入元素本身

    基本命令

    1. Pfadd

      将所有元素参数添加到 HyperLogLog 数据结构中

       PFADD key-name  element [element ...]

      如果至少有个元素被添加返回 1, 否则返回 0

    2.Pfcount

      PFCOUNT key [key ...]

      返回给定 HyperLogLog 的基数估算值

      返回给定 HyperLogLog 的基数值,如果多个 HyperLogLog 则返回基数估值之和

    3.Pgmerge

      将多个 HyperLogLog 合并为一个 HyperLogLog ,合并后的 HyperLogLog 的基数估算值是通过对所有 给定 HyperLogLog 进行并集计算得出的

      PFMERGE dest-key key [key ...]

      返回 OK

    数据集 {a,b,c,d,e,f,a}, 那么这个数据集的基数集为 {a,b,c,d,e,f}, 基数(不重复元素)为6

    算法给出的基数并不是精确的,可能会比实际稍微多一些或者稍微少一些,但会控制在合理的范围之内

     可以用于实现记录网站每天访问的独立IP数量这样的一个功能

  • 相关阅读:
    oracle使用expdp备份数据库
    用Setuptools构建和分发程序包
    C#5.0-原生异步编程方式
    任务并行库
    线程-线程池1
    多线程-3(同步)
    多线程-2(线程同步)
    线程---1
    高性能-GC3
    高性能-GC2
  • 原文地址:https://www.cnblogs.com/baby123/p/7168993.html
Copyright © 2011-2022 走看看