• HyperLogLog 数据结构 统计数据


    UV 不⼀样,它要去重,同⼀个⽤户⼀天之内的多次访问请求只能计数⼀次。这就要求每⼀个⽹⻚请求都需要带上⽤户的 ID,⽆论是登陆⽤户还是未登陆⽤户都需要⼀个唯⼀ ID 来标识。如⼀个爆款⻚⾯⼏千万的UV,你需要⼀个很⼤的 set 集合来统计,这就⾮常浪费空间。如果这样的⻚⾯很多,那所需要的存储空间是惊⼈的

    Redis 提供了 HyperLogLog 数据结构就是⽤来解决这种统计问题的。HyperLogLog 提供不精确的去重计数⽅案,虽然不精确但是也不是⾮常不精确,标准误差是0.81%,这样的精确度已经可以满⾜上⾯的 UV 统计需求了。
    HyperLogLog 提供了两个指令 pfadd 和 pfcount,根据字⾯意义 很好理解,⼀个是增加计数,⼀个是获取计数。pfadd ⽤法和 set 集合的 sadd 是⼀样的,来⼀个⽤户 ID,就将⽤户 ID 塞进去就是pfcount 和 scard ⽤法是⼀样的,直接获取计数值。
    27.0.0.1:6379> pfadd codehole user1
    (integer) 1
    127.0.0.1:6379> pfcount codehole
    (integer) 1
    127.0.0.1:6379> pfadd codehole user2
    (integer) 1
    127.0.0.1:6379> pfcount codehole
    (integer) 2
    127.0.0.1:6379> 
  • 相关阅读:
    buuctf-misc 一叶障目
    攻防世界-web ics-05
    攻防世界-web ics-06
    攻防世界-web NewsCenter
    攻防世界-web upload1
    攻防世界-web unserialize3
    攻防世界-web PHP2
    攻防世界-web2
    gitlab常用命令
    javascript编程风格
  • 原文地址:https://www.cnblogs.com/hanmengya/p/10957783.html
Copyright © 2020-2023  润新知