核心数据分析

大规模计数

在数十亿事件之上统计独立访客、回答“见过吗?”、找出热门条目和估算频率,每项都只占用少量且固定的内存。

种概率数据结构
4
每个结构的内存
固定
误差范围
已知
步骤 1 / 5
独立访客

把访客 id 加入 HyperLogLog。无论来多少访客,内存都保持很小。

示例会话playing
# 独立访客
hotkv> PFADD visitors:2026-10-16 user:42 user:77 user:91
(integer) 1

使用真实 HotKV 命令和示例回复的动画演示。点击任意步骤即可跳转。 命令和回复保持英文,与您在 HotKV 中输入和看到的完全一致。

问题所在

要精确回答“有多少独立用户”“这封邮件以前发过吗”或“热门搜索有哪些”,所需内存会随每个不同的条目增长。在数十亿事件的规模下,每个问题都会变成好几 GB 的集合和计数器。

HotKV 如何解决

概率数据结构以一个小而已知的误差换取固定的内存。HyperLogLog 统计不同条目的数量,Bloom 过滤器回答成员关系,Top-K 跟踪出现最频繁的条目,Count-min sketch 估算任意条目出现的次数。这四种结构都内置于 HotKV。

逐步演示

逐条命令,看看发生了什么

  1. 01

    独立访客

    把访客 id 加入 HyperLogLog。无论来多少访客,内存都保持很小。

    PFADD visitors:2026-10-16 user:42 user:77 user:91
  2. 02

    有多少?

    对独立访客数的估算,标准误差很小。

    PFCOUNT visitors:2026-10-16
  3. 03

    绝不重复发送

    发送营销邮件之前,先检查这个地址是否已经收到过。

    BF.EXISTS sent:campaign:fall ada@example.com
  4. 04

    热门搜索

    Top-K 在事件流入时保留出现最频繁的条目。

    TOPK.LIST searches:today WITHCOUNT
  5. 05

    任意条目的出现次数

    Count-min sketch 可估算任意条目的次数,无论它是否在榜单上。

    CMS.QUERY pageviews /home /pricing /blog
适用场景

真实场景

Web 与应用分析

按页面或功能统计每日和每月的独立用户,并用 PFMERGE 跨天合并。

邮件与通知

Bloom 过滤器在重试和不同营销活动之间防止重复发送。

搜索与电商

实时跟踪热门查询和浏览最多的商品,用于商品运营。

内置功能

您将获得

HyperLogLog

不同条目计数,可跨时间桶合并。

PFADDPFCOUNTPFMERGE

Bloom 过滤器

成员关系判断,假阳性率可配置。

BF.RESERVEBF.ADDBF.EXISTS

Top-K

流中出现最频繁的条目。

TOPK.ADDTOPK.LIST

Count-min sketch

任意条目的频率估算。

CMS.INCRBYCMS.QUERY

常见问题

它们有多准确?

Bloom 过滤器可以设置误差率,Count-min sketch 可以设置宽度和深度。HyperLogLog 的标准误差小且固定。

Bloom 过滤器会漏掉它见过的东西吗?

不会。它可能报告假阳性,但绝不会报告假阴性。

我需要安装模块吗?

不需要。它们是 HotKV 的一部分。

相关用例

在您自己的工作负载上试试

HotKV 兼容 Redis 协议,您可以把现有客户端指向它,运行这些相同的命令。