ข้อมูลหลักการวิเคราะห์

การนับในระดับใหญ่ด้วยโครงสร้างเชิงความน่าจะเป็น

ผู้เยี่ยมชมที่ไม่ซ้ำ “เคยเห็นสิ่งนี้หรือยัง” รายการยอดนิยม และความถี่ ในเหตุการณ์นับพันล้าน โดยแต่ละอย่างใช้หน่วยความจำเล็กและคงที่

โครงสร้างเชิงความน่าจะเป็น
4
หน่วยความจำต่อโครงสร้าง
คงที่
ขอบเขตความคลาดเคลื่อน
ทราบ
ขั้นที่ 1 จาก 5
ผู้เยี่ยมชมที่ไม่ซ้ำ

เพิ่ม id ผู้เยี่ยมชมเข้า HyperLogLog หน่วยความจำยังคงเล็กไม่ว่าจะมีเข้ามากี่ราย

เซสชันตัวอย่างplaying
# ผู้เยี่ยมชมที่ไม่ซ้ำ
hotkv> PFADD visitors:2026-10-16 user:42 user:77 user:91
(integer) 1

ตัวอย่างแบบแอนิเมชันพร้อมคำสั่ง HotKV จริงและคำตอบตัวอย่าง คลิกขั้นตอนใดก็ได้เพื่อข้ามไปยังขั้นนั้น คำสั่งและคำตอบยังคงเป็นภาษาอังกฤษ ตรงตามที่คุณพิมพ์และเห็นใน HotKV

ปัญหา

คำตอบที่แน่นอนสำหรับ “มีผู้ใช้ที่ไม่ซ้ำกี่คน” “เราเคยส่งอีเมลนี้หรือยัง” หรือ “คำค้นยอดนิยมคืออะไร” ต้องใช้หน่วยความจำที่เพิ่มตามทุกรายการที่ไม่ซ้ำ ที่เหตุการณ์นับพันล้านจะกลายเป็น set และตัวนับหลายกิกะไบต์ต่อหนึ่งคำถาม

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
ข้อมูลอ้างอิง:PFADDBF.EXISTSTOPK.LISTCMS.QUERY

คำถามที่พบบ่อย

แม่นยำแค่ไหน

Bloom filter ให้คุณตั้งอัตราข้อผิดพลาด และ Count-min sketch ตั้งความกว้างและความลึก HyperLogLog มีค่าคลาดเคลื่อนมาตรฐานที่เล็กและคงที่

Bloom filter พลาดสิ่งที่เคยเห็นได้ไหม

ไม่ได้ มันรายงานผลบวกลวงได้ แต่ไม่มีผลลบลวง

ต้องใช้โมดูลไหม

ไม่ต้อง ทั้งหมดเป็นส่วนหนึ่งของ HotKV

กรณีใช้งานที่เกี่ยวข้อง

ลองกับเวิร์กโหลดของคุณเอง

HotKV ใช้โปรโตคอลของ Redis คุณจึงชี้ไคลเอนต์ที่มีอยู่มาที่ HotKV แล้วรันคำสั่งเดียวกันนี้ได้