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數量這樣的一個功能

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM