核心資料分析

以機率型結構進行大規模計數

不重複訪客、「我們看過這個嗎?」、熱門項目與頻率,橫跨數十億個事件,每一項都只用少量固定的記憶體。

種機率型結構
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 filter 回答成員資格,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
適用之處

真實世界的情境

網站與應用程式分析

每個頁面或功能的每日與每月不重複使用者,並以 PFMERGE 跨日合併。

電子郵件與通知

Bloom filter 能防止在重試與行銷活動之間重複寄送。

搜尋與商務

即時追蹤最熱門的查詢與最多人瀏覽的商品,供商品陳列使用。

內建

您能獲得什麼

HyperLogLog

不重複項目數,可跨區間合併。

PFADDPFCOUNTPFMERGE

Bloom filter

成員資格判斷,偽陽性率可設定。

BF.RESERVEBF.ADDBF.EXISTS

Top-K

串流中最頻繁的項目。

TOPK.ADDTOPK.LIST

Count-min sketch

任一項目的頻率估計。

CMS.INCRBYCMS.QUERY

常見問題

它們有多準確?

Bloom filter 讓您設定誤差率,Count-min sketch 讓您設定寬度與深度。HyperLogLog 則有微小且固定的標準誤差。

Bloom filter 會漏掉它看過的東西嗎?

不會。它可能出現偽陽性,但絕不會出現偽陰性。

我需要模組嗎?

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

相關使用情境

在您自己的工作負載上試試看

HotKV 支援 Redis 協定,因此您可以將現有的用戶端指向它,並執行這些相同的指令。