日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
RedisHyperLoglog基數(shù)統(tǒng)計
Redis 經(jīng)常使用的數(shù)據(jù)類型有字符串、列表、散列、集合和有序集合,但這些類型并不能滿足所有的應(yīng)用場景,因此,Redis 的后續(xù)版本不斷的擴(kuò)增其他數(shù)據(jù)類型來增強(qiáng) Redis 適用能力。在 Redis 2.8.9 版本中新增了 HyperLogLog 類型。

在棲霞等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供網(wǎng)站制作、成都網(wǎng)站制作 網(wǎng)站設(shè)計制作按需設(shè)計網(wǎng)站,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),成都品牌網(wǎng)站建設(shè),成都全網(wǎng)營銷,外貿(mào)營銷網(wǎng)站建設(shè),棲霞網(wǎng)站建設(shè)費用合理。

什么是HyperLoglog

HyperLoglog 是 Redis 重要的數(shù)據(jù)類型之一,它非常適用于海量數(shù)據(jù)的計算、統(tǒng)計,其特點是占用空間小,計算速度快。

HyperLoglog 采用了一種基數(shù)估計算法,因此,最終得到的結(jié)果會存在一定范圍的誤差(標(biāo)準(zhǔn)誤差為 0.81%)。
每個 HyperLogLog key 只占用 12 KB 內(nèi)存,所以理論上可以存儲大約2^64個值,而 set(集合)則是元素越多占用的內(nèi)存就越多,兩者形成了鮮明的對比 。

HyperLoglog 使用起來較為方便,但是其內(nèi)部原理較為復(fù)雜,不建議大家深入研究,只要會用即可。

基數(shù)定義

基數(shù)定義:一個集合中不重復(fù)的元素個數(shù)就表示該集合的基數(shù),比如集合 {1,2,3,1,2} ,它的基數(shù)集合為 {1,2,3} ,所以基數(shù)為 3。HyperLogLog 正是通過基數(shù)估計算法來統(tǒng)計輸入元素的基數(shù)。

HyperLoglog 不會儲存元素值本身,因此,它不能像 set 那樣,可以返回具體的元素值。HyperLoglog 只記錄元素的數(shù)量,并使用基數(shù)估計算法,快速地計算出集合的基數(shù)是多少。

場景應(yīng)用

HyperLogLog 也有一些特定的使用場景,它最典型的應(yīng)用場景就是統(tǒng)計網(wǎng)站用戶月活量,或者網(wǎng)站頁面的 UV(網(wǎng)站獨立訪客)數(shù)據(jù)等。

UV 與 PV(頁面瀏覽量) 不同,UV 需要去重,同一個用戶一天之內(nèi)的多次訪問只能計數(shù)一次。這就要求用戶的每一次訪問都要帶上自身的用戶 ID,無論是登陸用戶還是未登陸用戶都需要一個唯一 ID 來標(biāo)識。

當(dāng)一個網(wǎng)站擁有巨大的用戶訪問量時,我們可以使用 Redis 的 HyperLogLog 來統(tǒng)計網(wǎng)站的 UV (網(wǎng)站獨立訪客)數(shù)據(jù),它提供的去重計數(shù)方案,雖說不精確,但 0.81% 的誤差足以滿足 UV 統(tǒng)計的需求。

常用命令

HyperLoglog命令
命令 說明
PFADD key element [element ...] 添加指定元素到 HyperLogLog key 中。
PFCOUNT key [key ...] 返回指定 HyperLogLog key 的基數(shù)估算值。
PFMERGE destkey sourcekey [sourcekey ...] 將多個 HyperLogLog key 合并為一個 key。
 

基本命令

HyperLogLog 提供了三個常用命令,分別是
PFADD、
PFCOUNT
PFMERGE。

下面看一組實例演示:假設(shè)有 6 個用戶(user01-user06),他們分別在上午 8 與 9 點訪問了
www.biancheng.netC語言中文網(wǎng)。

#向指定的key中添加用戶
127.0.0.1:6379> PFADD user:uv:2021011308 user01 user02 user03
(integer) 1
#向指定的key中添加用戶
127.0.0.1:6379> PFADD user:uv:2021011309 user04 user05
(integer) 1
#統(tǒng)計基數(shù)值
127.0.0.1:6379> PFCOUNT user:uv:2021011308
(integer) 3
#重復(fù)元素不能添加成功,其基數(shù)仍然為3
127.0.0.1:6379> PFADD user:uv:2021011308 user01 user02
(integer) 0
127.0.0.1:6379> PFCOUNT user:uv:2021011308
(integer) 3
#添加新元素值
127.0.0.1:6379> PFADD user:uv:2021011308 user06
(integer) 1
#基數(shù)值變?yōu)?
127.0.0.1:6379> PFCOUNT user:uv:2021011308
(integer) 4
#統(tǒng)計兩個key的基數(shù)值
127.0.0.1:6379> PFCOUNT user:uv:2021011308 user:uv:2021011309
(integer) 6
#將兩個key值合并為一個
127.0.0.1:6379> PFMERGE user:uv:2021011308-09 user:uv:2021011308 user:uv:2021011309
OK
#使用合并后key統(tǒng)計基數(shù)值
127.0.0.1:6379> PFCOUNT user:uv:2021011308-09
(integer) 6

當(dāng)前文章:RedisHyperLoglog基數(shù)統(tǒng)計
網(wǎng)站鏈接:http://www.5511xx.com/article/djsjieo.html