Redis教程 七 HyperLogLog型別

2021-07-22 06:56:07 字數 2371 閱讀 3751

redis教程(

七) hyperloglog型別

redis

的鍵值可以支援資料型別:字串,列表,散表,集合,有序集合、

hyperloglog

,通過選用不同的資料結構,使用者可以使用

redis

解決各式各樣的問題。

在2.8.9

版本新增了

hyperloglog

結構。

基數:集合中不同元素的數量。比如

的基數就是3

估算值:演算法給出的基數並不是精確的,可能會比實際稍微多一些或者稍微少一些,但會控制在合理的範圍之內。

redis hyperloglog

是用來做基數統計的演算法,

hyperloglog

的優點是,在輸入元素的數量或者體積非常非常大時,計算基數所需的空間總是固定

的、並且是很小的。在

redis

裡面,每個

hyperloglog

鍵只需要花費

12 kb

記憶體,就可以計算接近

2^64

個不同元素的基

數。這和計算基數時,元素越多耗費記憶體就越多的集合形成鮮明對比。但是,因為

hyperloglog

只會根據輸入元素來計算基數,而不會儲存輸入元素本身,所以

hyperloglog

不能像集合那樣,返回輸入的各個元素。

1、pfadd

命令:將任意數量的元素新增到指定的

hyperloglog

裡面。如果

hyperloglog

估計的近似基數(

)在命令執行之後出現了變化,

那麼命令返回1,

否則返回0。

如果命令執行時給定的鍵不存在,

那麼程式將先建立乙個空的

hyperloglog

結構,然後再執行命令。

命令:命令作用於單個鍵時,

返回儲存在給定鍵的

hyperloglog

的近似基數,

如果鍵不存在,

那麼返回

0。命令作用於多個鍵時,

返回所有給定

hyperloglog

的並集的近似基數,

這個近似基數是通過將所有給定

hyperloglog

合併至乙個臨時

hyperloglog

來計算得出的。

pfcount address

3、pfmerge

命令:將多個

hyperloglog

合併(merge

)為乙個

hyperloglog

,合併後的

hyperloglog

的基數接近於所有輸入

hyperloglog

的可見集合(

observed set

)的並集。合併得出的

hyperloglog

會被儲存在

destkey

鍵裡面,

如果該鍵並不存在,

那麼命令在執行之前,

會先為該鍵建立乙個空的

——厚積薄發(yuanxw)

使用Redis統計UV資料 HyperLogLog

只被計算一次 使用者量小,可以使用redis的set集合來進行統計 每有1個請求,就用sadd將使用者id新增進去,然後通過scard取值,即為uv資料 如果乙個頁面有幾千萬的uv,就需要乙個很大的set,很浪費空間 如果有十個或更多頁面,怎麼辦?只是為了統計uv,就要用掉這麼多空間,不值得 所以要...

redis教程(一)redis安裝

目錄 redis相關問題總結 1.安裝redis 1 安裝gcc 目地是編譯軟體安裝gcc 目地是編譯軟體 2 解壓 3 把解壓的檔案copy到 usr local src裡面 4 開啟 usr local src redis deps進行編譯依賴項 5 開啟 usr local src redis...

Redis安裝教程

redis是比較流行的nosql資料庫之一,下面來記錄下redis的安裝過程 redis版本 redis 3.0.1 linux版本 red hat enterprise linux workstation release 7.0 maipo 解壓 tar zxvf redis 3.0.1.tar....