簡介: HyperLogLog是redis在2.8.9版本添加的一種新的結構, Redis-HyperLogLog是用來做基數統計的演算法,其最大的優點就是:在輸入元素的數量或者體積非常非常大的時候,計算基數需要的空間總是固定的,并且很小,在redis中,每一個HyperLogLog只需要12KB記憶體,就可以計算接近2^64個不同元素的基數,這與元素越多耗費記憶體越大的集合形成了一個鮮明的對比,但是HyperLogLog只會根據輸入元素來計算基數,不會存盤輸入元素本身,所以HyperLogLog不能和集合一樣,回傳輸入的各個元素, 什么是基數?基數就是一個資料集中元素個數(重復元素只算一個), 命令介紹: 1)pfadd 可用版本: >=2.8.9 時間復雜度: 每添加一個元素復雜度為O(1) 命令格式: pfadd key element [element ...] 作用: 將任意數量的元素添加到指定的HyperLogLog中,(HyperLogLog內部可能會被更新,以便反映一個不同唯一元素估計數量,即集合基數) 回傳值: 如果HyperLogLog估計的近似基數在命令執行之后出現了變化,回傳1,不然回傳0, 注意: 如果指定HyperLogLog不存在的話,默認原始值為一個空HyperLogLog結構, 可以沒有element引數,表示只是創建一個空的HyperLogLog結構,創建成功回傳1, 2)pfcount 可用版本: >=2.8.9 時間復雜度: O(N),N為指定HyperLogLog的個數 命令格式: pfcount key [key ...] 作用: 獲取所有給定HyperLogLog的并集的近似基數,這個近似基數帶有0.81%標準錯誤的近似值, 回傳值: 回傳所有給定HyperLogLog的并集的近似基數,只有一個key的話,就是這個key的近似基數,如果這一個key也不存在的話,回傳0, 3)pfmerge 可用版本: >=2.8.9 時間復雜度: O(N),N為被合并的HyperLogLog數量 命令格式: pfmerge destkey sourcekey [sourcekey ...] 作用: 將多個HyperLogLog合并成一個,合并之后得到的HyperLogLog保存在destkey中,如果不存在的話,就會創建它, 回傳值: 回傳OK
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/252979.html
標籤:其它
下一篇:Geo命令
