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

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

新聞中心

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

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

什么是HyperLoglog

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

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

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

基數(shù)定義

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

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

場(chǎng)景應(yīng)用

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

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

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

常用命令

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

基本命令

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

下面看一組實(shí)例演示:假設(shè)有 6 個(gè)用戶(user01-user06),他們分別在上午 8 與 9 點(diǎn)訪問(wèn)了
www.biancheng.netC語(yǔ)言中文網(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)計(jì)基數(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)計(jì)兩個(gè)key的基數(shù)值
127.0.0.1:6379> PFCOUNT user:uv:2021011308 user:uv:2021011309
(integer) 6
#將兩個(gè)key值合并為一個(gè)
127.0.0.1:6379> PFMERGE user:uv:2021011308-09 user:uv:2021011308 user:uv:2021011309
OK
#使用合并后key統(tǒng)計(jì)基數(shù)值
127.0.0.1:6379> PFCOUNT user:uv:2021011308-09
(integer) 6

文章題目:RedisHyperLoglog基數(shù)統(tǒng)計(jì)
本文地址:http://m.5511xx.com/article/djsjieo.html