Skip to content

Tag: ranking

ทำ Ranking/Leaderboard ด้วย Redis #2

โพสต์ที่แล้ว “ทำ Ranking/Leaderboard ด้วย Redis #1” แล้วผมทำ ranking แบบอันดับซ้ำกันและข้ามอันดับได้ คราวนี้ลองมาทำอีกแบบคืออันดับซ้ำกันและไม่มีการข้ามอันดับดูบ้าง  ranking ที่เราคาดหวังจะเป็นแบบนี้

#1, user01 score 1000
#1, user02 score 1000
#2, user03 score 900
#2, user04 score 900
#3, user05 score 800

ทำ Ranking/Leaderboard ด้วย Redis #1

โจทย์ของผมคือผมต้องการ

  1. Ranking ที่อัปเดตแบบ real-time
  2. ไม่ query จาก database โดยตรงและ query บ่อยๆ
  3. Rank หรืออันดับสามารถซ้ำได้

จากข้อ 3 อันดับซ้ำกันได้มี 2 แบบ ตัวอย่างเช่น

แบบที่ 1 non-skipped ranking

#1, user01 score 1000
#1, user02 score 1000
#2, user03 score 900
#2, user04 score 900
#3, user05 score 800

แบบที่ 2 skipped ranking

#1, user01 score 1000
#1, user02 score 1000
#3, user03 score 900
#3, user04 score 900
#5, user05 score 800