《Redis數據結構——HyperLogLog》要點:
本文介紹了Redis數據結構——HyperLogLog,希望對您有用。如果有疑問,可以聯系我們。
HyperLogLog布局用于統計基數,因為基數是不重復的,所以一個大的數據集,其基數會小很多,占用很少的空間.
HyperLogLog的尺度錯誤是1.04 / sqrt(m),其中“m”是使用的寄存器數.
Redis使用16384個寄存器,因此尺度錯誤為0.81%.
由于Redis實現中使用的散列函數具有64位輸出,并且我們使用14位的散列輸出來尋址16k寄存器,所以剩下50位,所以我們可以遇到的最長的零運行將適合一個6位寄存器.這便是為什么Redis HyperLogLog值僅對16k寄存器使用12k字節的原因.
由于使用了64位輸出功能,對付我們可以計算的集合的基數沒有實際的限制.此外值得注意的是,非常小的基數的誤差往往很小.
命令前綴為“PF”,以紀念Philippe Flajolet,后半部分則比擬容易記?。篜Fadd-增加,PFcount-統計,PFmerge-合并.
hyperloglog示例以下:
歡迎參與《Redis數據結構——HyperLogLog》討論,分享您的想法,維易PHP學院為您提供專業教程。