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....