ข้อมูลหลักเกม

ลีดเดอร์บอร์ดแบบเรียลไทม์

การจัดอันดับสดสำหรับเกม กีฬา และแอปโซเชียล โดยการอัปเดตคะแนนและการอ่านทำงานขนานกัน

เรียงลำดับตอนเขียน
เสมอ
คำสั่งสำหรับ 10 อันดับต้น
1
คำสั่งสำหรับอันดับของผู้เล่น
1
ขั้นที่ 1 จาก 5
บันทึกคะแนน

แมตช์จบและผลถูกเขียน

เซสชันตัวอย่างplaying
# บันทึกคะแนน
hotkv> ZADD board:2026-w42 1500 alice
(integer) 1

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

ปัญหา

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

HotKV จัดการอย่างไร

Sorted set เก็บสมาชิกเรียงตามคะแนนขณะที่ถูกเขียน ส่วนบนของตารางและอันดับของผู้เล่นคนใดจึงพร้อมอ่านเสมอ HotKV ประมวลผลคำสั่งบนเวิร์กเกอร์เธรดจำนวนมาก การอัปเดตคะแนนและการอ่านจึงไม่ถูกบีบผ่านเธรดเดียว

ทีละขั้นตอน

เกิดอะไรขึ้นบ้าง ทีละคำสั่ง

  1. 01

    บันทึกคะแนน

    แมตช์จบและผลถูกเขียน

    ZADD board:2026-w42 1500 alice
  2. 02

    เพิ่มเข้าคะแนน

    Bob ชนะหนึ่งรอบ คะแนนของเขาเพิ่มขึ้นและลำดับอัปเดตทันที

    ZINCRBY board:2026-w42 250 bob
  3. 03

    แสดง 10 อันดับต้น

    ไคลเอนต์ทุกตัวและโอเวอร์เลย์สตรีมอ่านผู้นำขณะที่การเขียนดำเนินต่อไป

    ZREVRANGE board:2026-w42 0 9 WITHSCORES
  4. 04

    ฉันอยู่ตรงไหน

    ผู้เล่นแต่ละคนเห็นตำแหน่งของตนเอง

    ZREVRANK board:2026-w42 alice
  5. 05

    รีเซ็ตรายสัปดาห์โดยไม่ต้องมีงาน

    แต่ละสัปดาห์มีคีย์ของตนเองและหมดอายุหลังสองสัปดาห์

    EXPIRE board:2026-w42 1209600
เหมาะกับงานแบบไหน

สถานการณ์จริง

เกมมือถือและคอนโซล

บอร์ดระดับโลก ระดับภูมิภาค และเฉพาะเพื่อนเป็น sorted set แยกกัน อัปเดตหลังทุกแมตช์

แอปฟิตเนสและการเรียนรู้

อันดับสตรีคและคะแนนรายสัปดาห์รีเซ็ตตัวเองด้วยการสลับไปใช้คีย์ใหม่ทุกสัปดาห์

อีเวนต์สดและอีสปอร์ต

โอเวอร์เลย์ถ่ายทอดอ่านตารางอันดับทุกวินาทีขณะที่ผลการแข่งขันไหลเข้ามา

อยู่ในตัว

สิ่งที่คุณได้รับ

การจัดอันดับที่เรียงลำดับเสมอ

ไม่มีงานจัดอันดับให้รัน ลำดับถูกรักษาไว้เมื่อมีคะแนนเข้ามา

ZADDZINCRBY

รายการอันดับต้นและอันดับของผู้เล่น

อย่างละหนึ่งคำสั่ง

ZREVRANGEZREVRANK

เวิร์กเกอร์เธรดจำนวนมาก

การอัปเดตคะแนนและการอ่านกระจายไปทั่วเวิร์กเกอร์เธรดแทนที่จะอยู่เธรดเดียว

บอร์ดตามรอบเวลา

หนึ่งคีย์ต่อรอบ พร้อมเวลาหมดอายุ

EXPIRE
ข้อมูลอ้างอิง:ZADDZINCRBYZREVRANGEZREVRANK

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

สร้างลีดเดอร์บอร์ดรายวันหรือรายสัปดาห์ได้อย่างไร

ใช้ sorted set หนึ่งชุดต่อรอบ เช่น board:2026-w42 แล้วตั้งเวลาหมดอายุให้มัน

รวมบอร์ดเข้าด้วยกันได้ไหม

ได้ ZUNIONSTORE รวมหลายบอร์ดเป็นบอร์ดเดียว เช่น บอร์ดรายเดือนจากบอร์ดรายสัปดาห์สี่บอร์ด

การเขียนหนักจะทำให้การอ่านช้าลงไหม

HotKV รันคำสั่งบนเวิร์กเกอร์เธรดหลายตัว การอัปเดตคะแนนและการอ่านจึงไม่ถูกบังคับให้ผ่านเธรดเดียว

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

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

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