前置知识: Redis

基数统计

00:00
1 min Intermediate 2026/6/14

Redis基数统计HyperLogLog:去重计数、UV统计、误差控制与内存优化

1. HyperLogLog 概述

HyperLogLog(HLL)是基数计算法,用极小内存(12KB)估算集合中不同元素数量标准误差约 0.81%。

2. 基本操作

PFADD key element [element ...]  -- 添加元素
PFCOUNT key [key ...]            -- 获取基数估算
PFMERGE destkey sourcekey [...]  -- 合并多个HLL
-- 添加UV
PFADD uv:2026-06-14 user1 user2 user3 user1 user2
-- 重复元素自动去重

-- 获取UV数
PFCOUNT uv:2026-06-14  -- 返回3

-- 合并多天UV
PFMERGE uv:2026-week uv:2026-06-08 uv:2026-06-09 ... uv:2026-06-14
PFCOUNT uv:2026-week

3. 误差与内存

特性HyperLogLogSET
内存12KB元素增长
约0.81%标准误差精确
百万UV12KB约10MB
亿级UV12KB约1GB

4. 应用场景

-- 网站UV统计
PFADD site:uv:2026-06-14 <user_id>

-- 页面UV
PFADD page:uv:article:123:2026-06-14 <user_id>

-- 搜索关键词UV
PFADD search:uv:keyword:redis:2026-06-14 <user_id>

-- 周活跃用户
PFMERGE wau:2026-w24 dau:2026-06-09 dau:2026-06-10 ... dau:2026-06-15
PFCOUNT wau:2026-w24

知识检测

学习进度

-- 已学文档
--% 知识覆盖率

学习推荐

专注模式